娓娓道來c指標 (1)指標就是地址

來源:互聯網
上載者:User

標籤:指標   c語言   地址   

                         (1)指標就是地址

首先明確一個觀點:指標就是地址。這是理解指標的起始一步。

直觀感受下,變數的地址

int main(){int foo;int *foo_p;foo = 5;foo_p = &foo;printf("   foo...%d\n", foo);printf("*foo_p...%d\n", *foo_p);printf("  &foo...%p\n", &foo);printf(" foo_p...%p\n", foo_p);printf("&foo_p...%p\n", &foo_p);return 0;}
運行


幾點說明:

  1. %p中的p是pointer(指標)的意思,專門用於列印指標變數中的內容。
  2. 有時看到用%x列印指標的,雖然結果一樣,但含義完全不同。%p:用合適的方式(一般是十六進位)輸出指標變數中存放的另一個變數的地址;%x:用十六進位的方式列印出變數的值。並且在我的環境中使用%x列印指標變數的話,會省略前面的0。
指標變數的
左上方是變數名,右上方是變數地址,中間是變數儲存的內容。
看看在我的環境中各基本類型分配的記憶體大小
int main(){printf("sizeof(char)...%d\n", sizeof(char));printf("sizeof(int)...%d\n", sizeof(int));printf("sizeof(float)...%d\n", sizeof(float));printf("sizeof(double)...%d\n", sizeof(double));printf("sizeof(int*)...%d\n", sizeof(int*));return 0;}

在我的環境中,指標類型分配的大小是 sizeof(int*)=4;也就是說用4個位元組的大小來儲存變數的地址,這也是目前大多數環境下的結果。以後討論基於這個結果。至於在c標準中,沒有規定指標類型的大小,具體大小依靠具體的環境。





娓娓道來c指標 (1)指標就是地址

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.