註冊登錄
伊莉討論區返回首頁

thelord2009的個人空間http://www89.eyny.com/?5788411[收藏][複製][分享][RSS]

日誌

指標與位址間的關係詳解Part-II

已有 608 次閱讀2023-1-4 11:39 PM

之前提到
假設我設了int指標變數*ptr,num=20
&符號可用來取得變數的位址
ptr=#
則*ptr有自己的位址&ptr
因為ptr=&num
所以ptr存放&num的位址
所以輸出ptr是輸出&num的位址
但是因為*是依位址取值運算子
所以輸出*ptr是輸出&num的位址的值20

依照
C最強入門邁向頂尖高手之路王者歸來
告訴我們:
頁數11-32

int x[5];
int *ptr;
ptr=x;       或是使用ptr=&x[0];

或是
int x[5];
int *ptr=x;

上述的意思是
如果先宣告指標
int *ptr;
再讓指標去指著目標則是
ptr=&x;
ptr=x;ptr=&x;的意思一樣應該是
即使用ptr=x;
編譯器自己知道意思是ptr=&x;

如果是同時宣告指標+指著目標
int *ptr=x;
和上述的寫法
int *ptr;
ptr=x; 
意思一樣應該是因為
同時宣告指標+指著目標
編譯器自己會隱式地自動定義ptr=&x;

大家也要注意
之前提過
int *func1(int *);
函數func1傳回值型態為int *,不是()裡頭的int *
因此函數裡頭的return回傳值
應該是return *ptr
return 依址取值的*ptr(要有*號)

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

facelistdoodle 塗鴉板

您需要登錄後才可以評論 登錄 | 註冊
驗證問答 換一個

Archiver|手機版|廣告|聯絡我們|廣告查詢|廠商合作|伊莉

GMT+8, 2024-5-23 11:44 PM

回頂部