c語言指標問題

2022-05-18 14:10:52 字數 1270 閱讀 7966

1樓:騾覓鷗侯熬

是這樣的,那個推箱子裡面最後面的主函式是:(無用的省略了已經)

void main()

結合上面的 在推箱子裡面的功能是儲存路徑的作用 在看下就很好理解的

2樓:這嘎達是啥地方

你那個win和pw是怎麼定義的?是定義為int *win和int *pw就沒錯

**win表示取得指標win的地址 **pw同上 在函式printdestination1中*win表示的就是指標win 只是如果直接過win傳遞過來的話無法改變win指向的記憶體 只有通過指標的呼叫才能改變主函式的值這個你知道的吧 malloc是開闢一個int 大小的無名記憶體 *win它指向這個無名int型記憶體 pw同上

3樓:

傳值的時候是win=&win

你形參和實參一樣

我把printdestination1裡的win叫b,main裡的win叫a

二級指標b指向a的地址,也就是說*b=a裡的值,a的值是一個int的地址

也就是b->a->int;

這個函式是為了給a分配空間的,因為引數傳遞是做一個指標的copy,為了給指標賦值,必須用二級指標

原則上,函式傳引數,n級指標可以給n-1級指標賦值

4樓:匿名使用者

呵呵,呼叫函式後有

**win=win;

這點別弄錯

5樓:匿名使用者

**win是二級指標 就是說取*win的地址

6樓:匿名使用者

樓主**win=&win *win=??的說法不對。

應該是

main函式中win要宣告成int *win;

補充的回答:

printdestination1中的win是main中的&a傳入的,但是是傳值而不是傳址,即win的值與&a的值相同,但win是有地址的(是個左值)而&a無地址(不是左值)。printdestination1中*win則是*(&a)即a,所以對*win賦值即改變了main中a的值。(這與一般情況不同,一般被呼叫函式中的引數改變不會使呼叫者的區域性變數改變因為函式呼叫是傳值的,區域性變數與引數地址不同。

本例中,改變了*win即改變了a,因為*win的地址win與a的地址&a相同,這有點模仿傳址呼叫的意味)

7樓:匿名使用者

win是二級指標啊,*win當然是對應一級指標了。

c語言的指標問題,C語言的指標問題

printf c p 3 分佈來看,c是要列印輸出一個字元。p指向那個字元陣列,p就是字元 a 那麼 a 3是多少呢,a 1是b 2 是c 3 是d注意是 p 3 而不是 p 3 這是由區別的。是的。p 3。是對p指向的那個值加3,p開始是指向a的,故a加3後就是d了 而p 執行3次的話,是指標p本...

C語言指標問題,求教大神C語言指標的問題搞不懂求大神指教

include include include include include static char chongpai char static int pare const void const void static int allocateintegerarr const char size ...

c語言指標的賦值問題C語言指標的賦值問題

指標在用要注意初始化,例如 int p p為指標,地址是未知的,如果直接賦值 p a 這樣編譯可以通過,但是會產生警告,p的地址是隨機分配的,這樣對未知的地址賦值很危險,可能會覆蓋掉某些重要資料,所以避免這種危險,在定義指標時注意初始化,也就是賦值。可以int p a 或者int p p a 然後再...