欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++?指針傳遞的作用小結(jié)

 更新時(shí)間:2023年04月10日 08:33:17   作者:wk灬丨  
本文主要介紹了C++?指針傳遞的作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

本文主要介紹了C++ 指針傳遞的作用小結(jié),分享給大家,具體如下

void pointerTest(int num) {
    num = 20;
}
 
int main() {
    int num = 10;
    pointerTest(num);
    LOGI("%d", num) // 打印出來的結(jié)果是 10
 
    return 0;
}

在這個(gè)例子中,main 函數(shù)定義了整型 num,值為 10,然后以參數(shù)傳遞給 pointerTest 函數(shù),在 pointerTest 函數(shù)中,直接對(duì)傳進(jìn)來的 num 賦值為 20。最終,打印出來的結(jié)果還是 10。 

為啥呢?熟悉 java 的人很快會(huì)反應(yīng)過來,因?yàn)?int 是基本數(shù)據(jù)類型,要用引用數(shù)據(jù)類型。

    public static void pointerTest(String str) {
        str = "wk";
    }
 
    public static void main(String[] args) {
        String str = "test";
        pointerTest(str);
        System.out.println(str); // 打印出來的結(jié)果是 test
    }

String 是引用數(shù)據(jù)類型了吧,但是打印出來的結(jié)果仍沒被改變

 其實(shí)對(duì)于引用數(shù)據(jù)類型參數(shù)而言,只能對(duì)這個(gè)對(duì)象進(jìn)行相應(yīng)的操作(get/set),并不能直接替換整個(gè)對(duì)象

C/C++ 中得意于指針,能夠修改函數(shù)外的變量值

void pointerTest(int *num) {
    *num = 20;
}
 
int main() {
    int num = 10;
    pointerTest(&num);
    LOGI("%d", num) // 打印出來的結(jié)果是 20
 
    return 0;
}

字符串也是一樣的:(C中的字符串類型為 char*)

void pointerTest(char **str) {
    *str = "wk";
}
 
int main() {
    char *str = "test";
    pointerTest(&str);
    LOGI("%s", str) // 打印出來的結(jié)果是 wk
 
    return 0;
}

在 pointerTest 函數(shù)中,對(duì)傳進(jìn)來的指針進(jìn)行取值(*)對(duì)外部參數(shù)進(jìn)行修改。按照這個(gè)思路反推,那么我們?cè)趥鬟f內(nèi)存地址給函數(shù) 其實(shí)是 提供函數(shù)修改參數(shù)的能力

到此這篇關(guān)于C++ 指針傳遞的作用小結(jié)的文章就介紹到這了,更多相關(guān)C++ 指針傳遞 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論