C Re07 二級指標,指標與引數

2022-06-11 22:42:19 字數 1684 閱讀 1233

變數 = 記憶體位址 + 儲存值;

指標 = 記憶體位址 + 變數記憶體位址;

二級指標 = 記憶體位址 + 指標記憶體位址;

void

morepointer()

intmain()

資料傳遞方式:

1、值傳遞

2、位址傳遞

//

使用值傳遞

void valueswap(int n1, int

n2)

//使用位址傳遞

void addrswap (int * n1, int *n2)

void

testforswap()

intmain()

乙個需求,定義乙個函式用來遍歷傳遞進來的陣列

void printarray(int * arr, int size) 

printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(arr));}//

為了明確引數傳遞的是什麼資料,建議是陣列就傳遞陣列

void printarrayv2(int array, int

length)

printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(array));}//

封裝獲取陣列長度的方法

int getsize(int

array)

//封裝陣列遍歷的方法:

void printarrayv3(int

array)

printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(array));

}int

main() ;

printarray(array,

10);

printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(array));

int array2[9] = ;

printarrayv2(array2,

sizeof(array2) / sizeof(int

)); printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(array2));

int array3[3] = ;

printarrayv3(array3);

printf(

"sizeof is pointer or array itself ? -> %d\n

", sizeof

(array3));

return0;

}

//

定義乙個全域性變數

int g_a = 100

;int *returntypeusage()

}}//

封裝乙個獲取位址的函式

int*getmemaddr()

intmain()

指標與二級指標

int num 10 int p1 int p2 p1 指標的指向結構如下圖所示 0x4000 0x3000 p2 0x2000 p1 num p2 表示的是儲存p2指標的位址 p2 表示的是p2指向的位址,即指標p1存放的位址 p2 表示指標p2指向位址中所存的值,即指標p1指向的位址,即變數nu...

一級指標與二級指標

如下圖所示,整型指標xptr指向變數x的位址。原始碼 include int main 實現方法一如下圖所示,先為二級整型指標ptr分配空間,然後賦值。原始碼 include include int main printf n return 0 執行結果 實現方法二 如下圖所示,先為二級整型指標pt...

二級指標與陣列

char str 這是字元指標陣列,每乙個陣列元素是乙個指標變數,而每個指標變數指向字串首字元位址,即是字串的位址。因為每乙個字串都代表的是乙個位址,是字串首字元的位址。字串常量是放在文字常量區,是不可以更改的。而指標陣列str裡面存放的是指向字串位址,它是可變的。如str 0 是可變的,它是指標變...