9.3.2指向char和int的指針_實(shí)例1

視頻教程???
韋東山升級(jí)版全系列嵌入式免費(fèi)視頻_快速入門篇
實(shí)例1
步驟一
我們?cè)谏厦婧瘮?shù)的基礎(chǔ)上,寫一個(gè)函數(shù)test1()?

main.c?

我們?cè)趖est1()函數(shù)中定義了一個(gè)整型變量ia,定義了一個(gè)指向整型的指針變量pi,定義了一個(gè)指向字符型的指針變量pc。然后打印出這些變量的地址。
編譯
gcc -m32 -o pointer_test pointer_test.c
運(yùn)行:
./pointer_test
結(jié)果:?

在32位的系統(tǒng)中int類型變量在內(nèi)存中占用4個(gè)字節(jié),指針型變量在內(nèi)存中占用4個(gè)字節(jié)如圖:

步驟二
在test1()的函數(shù)中對(duì)定義的變量進(jìn)行賦值,然后把賦值的結(jié)果打印出來。?

編譯:
gcc -m32 -o pointer_test pointer_test.c
運(yùn)行:
./pointer_test
結(jié)果:?

從結(jié)果可以看出來,變量pi和pc的值都等于變量ia的地址。
步驟三
我們使用指針并且對(duì)其進(jìn)行取值,然后移動(dòng)指針,在test1中添加如下代碼,完成所述要求
/*第三步:使用指針:1)取值 ?2)移動(dòng)指針*/

編譯
gcc -m32 -o pointer_test pointer_test.c
運(yùn)行:
./pointer_test
結(jié)果:

?由于pi指向了ia,所以*pi的值為0x12345678。由于pc也指向了ia,但是由于pc是字符型指針變量,一次只能訪問一個(gè)字節(jié),需要四次才能訪問完。如圖所示:

結(jié)論:
1. 指針變量所存儲(chǔ)的內(nèi)容是所指向的變量在內(nèi)存中的起始地址。
2. &變量:
目的:獲得變量在內(nèi)存中的地址; 返回:變量在內(nèi)存中起始地址;?
視頻教程???
韋東山升級(jí)版全系列嵌入式免費(fèi)視頻_快速入門篇
