1樓:倫悅宜
如果假設親和女朋友旅遊住酒店,但不能住一起,你住酒店的801房間;而她住802,這時酒店的管理人員發現房間編號有問題,於是把你和她的房間號碼換了,就是原來的801改為802,而原來的802改為801,這時雖然號變了,但內容(你和她)缺沒變。
對應到c當中,801和802就是所謂的指標,而內容就是你和她。
2樓:高山來逛逛
修改下函式定義部分
void swap(int *&a, int *&b)要改為引用.
具體請翻閱下 3樓:匿名使用者 你沒有明白子函式的引數是怎麼實現的 除了用&宣告實參和形參公用一個記憶體空間外 其他的形式的函式,函式呼叫的時候是要另外申請記憶體空間的,也就是說是一個影子 他們不再一個記憶體空間中,那麼函式改變了這個記憶體空間的記憶體,是不會改變主函式中變數佔用的記憶體的內容的,真是很多新手在函式呼叫時遇到的困惑 用你的例子。我形象一下給你說明 假如啊i佔用記憶體地址為0001 j為00020001內容為3,0002內容為5 p佔用記憶體地址為0003 q0004 0003內容為0001,0004內容為0002這個你應該能明白,理解吧 那麼呼叫函式的時候 a佔用0005,b0006 0005內容為0001,0006內容為0002這樣應該理解吧 那麼執行函式後,0005內容改為0002,0006內容改為0001這樣明白吧 接下來就是結果了,你改變了0005和0006的內容,但是列印的是0003和0004的內容 那麼當然還是不變了,你說是不是啊 指標改變的道理是 void swap(int *a,int *b)這裡的解釋就是 *a的內容是3,*b的內容是5 那麼交換指標指向的記憶體的內容的話,3 5就交換了 p 是先使用 p的值 p等價於a 再使 p p 1 因此改變了a的值 求助c語言大神。指標問題。如果 p a,p 和 p 怎麼計算,表示什麼啊?不懂啊?p a是錯誤的,只能是int p a才對,是int的不是p的,p意思是 取p指向的值 如果a 3,那麼 p 的值3,然後p p 1。p 的效果與 p... c a a a b,b 4 這句反彙編後的內容如下,下面是分析,望採納 0040103d mov eax,dword ptr ebp 4 可見ebp 4的地方儲存a的值,這條指令將 a 的值放到暫存器eax中 00401040 add eax,1 eax值加1,也就是a a 1 00401043 m... 運用 解釋指標運用的理解如下 include using namespace std int fun1 int a,int b int c c a a b b c cout a1 int c c a a b b c cout a2 a b2 b int c c a a b b c cout a3 a...求C語言大神解答,為什麼地址P變化如何計算,P變化為什麼會導致a隨之變化。圖中第二題
c語言,c的值為什麼不是,c語言,c的值為什麼不是
C語言寫函式交換兩個數的值,為什麼一定要用指標