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