1樓:
這裡採用的是地址傳值,會改變相應記憶體的值。 值傳遞好比是你把檔案複製一份,通過網路傳給他,然後他可以在他本機上對檔案做任何的修改,修改會儲存下來,但是你機器上的檔案不會發生任何的變化。即形參與實參是兩個不同的變數,各自佔用不同的儲存單元。
地址傳遞好比是你把檔案在網路上的地址告訴他人,他人通過網路訪問你機器上的檔案,他可以對檔案進行修改並儲存,此時,檔案的內容就會發生變化。即形參與實參是相同的變
2樓:匿名使用者
指標代表的是地址,你將x的地址賦值給了指標p,將y的地址賦值給了q,又用函式swap對兩個指標進行了交換,即交換了兩個變數的地址,所有x,y的地址已經交換了,所以他們的值也就交換了
int main()
這樣修改為什麼變成了3,5和5,3?關於這個問題 你交換的只是地址p和地址q 二x,y沒有動 如果你給交換的是*p和*q的話就和你函式的結果一樣了
3樓:生秋
因為p,q已經等於x,y的地址,所以改變的就是x,y的值
關於c語言指標問題!
4樓:飛翔的蠍子大叔
關於int *p1=123這個問題我看了很多資料,在這裡我發表一點看法,該問題非常好,這是c語言需要規範的地方。int *p1=123 是非法操作,指標表示地址,地址=123???我是沒有見過這種操作。
地址一般用二進位制、八進位制、十六進位制表示,123表示地址根本就是扯淡!
這個語句的目的就是給指標賦值,正確的方式應該為:
int a=123, *p1;
p1=&a;
執行一下就明白了:
#include
void main()
5樓:匿名使用者
我給樓主一個解釋,希望對樓主有幫助。有不懂的可以繼續追問哦首先得從你的定義開始
樓主要區別
int *p=123;和int *p;*p=123;
前者是定義一個指標變數,它指向一個地址123,後者是定義一個指標變數,再在這個指標指向的地址裡賦予123這個值。
所以兩個123是不同含義的。一個代表地址,一個代表數值。
所以最好輸出的時候,是把p1指向的地址和p2指向的地址的值輸出來了。
6樓:
p1是指標沒錯,但是地址也是一個值 ,你把它%d整型輸出,所以輸出123
7樓:我有兩把刷子誰要
*p1 = 123 表示把123當做地址賦給了指標變數,故所得的值一樣
8樓:匿名使用者
main()
{ int a=123;
int *p1,*p2;
*pi = 123;
p2=&a;
printf("%d,%d",p1,*p2);
關於C引數的問題。為什麼引數都用指標型別
方便資料帶回,如果是直接int的話在函式內部對資料進行修改以後原資料 即呼叫點處的資料 是沒有變化的,函式能提供給呼叫點的只有一個返回值,而有的時候只有一個返回值是不夠的,所以就需要用指標,在函式內部對資料本身直接修改,才函式結束之後直接這個資料就已經是改過的了,比如strcpy,gets之類的,引...
關於c語言指標和地址問題
針對第一個問題 是取地址符號,資料在計算機中儲存,有相應的地址能夠找到.陣列頭部就相當於一個指標,如果float x n 那麼x代表著陣列中的首地址,由於陣列在記憶體佔用的是連續儲存空間.因此也可以用指標去得到它的資料.你呼叫陣列的時候,其實也就是傳遞陣列的首地址給函式,那麼就不需要 符號了.然而你...
感覺出現問題 為什麼會出現這樣的問題?
現靜下來。感情的問題有的時候是讓人身不由己。你出現的那種情況可能是你沒遇到最讓你心動的男孩。有時間可以出去旅遊放鬆哈。感情的付出很需要努力的。下次的相親你肯定會成功的!我覺得這是你的心理問題了。如果在交往了很多男孩之後 還是不能將自己完全的融入的話 可能你要適當的關注一下自己的心理吧 我有一朋友 初...