c语言指针哪里难,为什么c语言指针那么难?
滿意答案
max60417
推薦于 2018.03.08
采納率:47%????等級(jí):12
已幫助:11226人
指針沒什么難的好吧,其實(shí)指針的難點(diǎn)在于應(yīng)用,可是有很多人在接觸指針的時(shí)候首先會(huì)對(duì)指針的理解上感到困難。
首先呢,在C語言里面,一個(gè)程序里面的變量在內(nèi)存里面是緊挨著的,而且每個(gè)變量的都有一個(gè)地址,所以這個(gè)地址也是緊挨著的,一般情況下,程序員使用十六進(jìn)制來表示指針的地址比較方便。
我們可以通過(&變量)來得到變量的地址,并且可以把這個(gè)地址賦值給一個(gè)變量,當(dāng)然也可以將這個(gè)地址傳遞給某一個(gè)子函數(shù)。
當(dāng)一個(gè)子函數(shù)得到這個(gè)地址的時(shí)候,可以直接用(“%f”,被賦值某個(gè)變量地址的變量)來輸出這個(gè)變量的地址,而且很厲害的一點(diǎn)就在于,我們可以通過(*被賦值某個(gè)變量地址的變量)來得到這個(gè)變量的值。
#include
int zizhihanshu(int *f){ //這里就是一個(gè)子函數(shù)
printf("%p \n",f); //這里我們可以輸出變量的地址
printf("%d \n",*f); //在變量前面加*號(hào),我們就可以隨時(shí)調(diào)用這個(gè)變量的值了,當(dāng)然,這個(gè)指針f的值是f所指向的那個(gè)變量的值,指針f本身就是一個(gè)變量,指針變量f的值是所指向的那個(gè)變量的地址,指針變量f本身也有一個(gè)地址。
}
int main(){
int d = 155;
int ad = 2;
printf("%p \n",&ad); //在主函數(shù)里面,我們可以通過&變量來輸出這個(gè)函數(shù)的地址
printf("%p \n",&d);
zizhihanshu(&d); //這里,我們直接給子函數(shù)返回一個(gè)地址
}
其次,可以用變量d和變量ad的地址用十六進(jìn)制計(jì)算機(jī)減一下,你會(huì)發(fā)現(xiàn),得到的結(jié)果是4或者是(-4),也就是說,一個(gè)整數(shù)變量在內(nèi)存里面所占的字節(jié)為4個(gè),同時(shí)也印證了,一個(gè)在代碼里面緊挨著的被賦值的變量,在內(nèi)存里面的地址也是緊挨著的。
&符,取地址
*符,將地址上的值反應(yīng)出來
C語言的指針其實(shí)是很容易理解的,關(guān)鍵在于之后在實(shí)際操作中怎么靈活的運(yùn)用指針。如果學(xué)到指針這個(gè)知識(shí)點(diǎn)的時(shí)候,進(jìn)展不是很好的話,可以在網(wǎng)絡(luò)上搜索一些關(guān)于內(nèi)存方面的知識(shí),這樣可以幫助理解。
10分享舉報(bào)
總結(jié)
以上是生活随笔為你收集整理的c语言指针哪里难,为什么c语言指针那么难?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaBean简介及基本使用————魔
- 下一篇: TotalRecorder 5.3 版及