c語言指標1

來源:互聯網
上載者:User

標籤:指標

#include <stdio.h>/*2018-05-26地址是記憶體單元的編號指標就是地址,地址就是指標地址就是記憶體單元的編號指標變數是存放地址的變數指標(0019FF38)和指標變數(p)是兩個不同的概念但是要注意:通常我們敘述時會把指標變數簡述為指標,實際含義並不一樣*/int main(void){int * p;      // p是變數的名字,int *表示p變數存放的int類型變數的地址  // int *p 不表示定義了一個名字叫做*p的變數  // int *p 應該這樣理解:p是變數名,p變數的資料類型是int *類型  //所謂int *類型實際就是存放int變數地址的類型int i = 3;int j;p = &i;  //ok /*1,p儲存了i的地址,因此p指向i2,p不是i,i也不是p,更準確的說,修改p的值不會影響i的值,修改i的值也不會影響p的值3,如果一個指標變數指向了某個普通變數,則*指標變數就完全等同於普通變數例子:如果p是個指標變數,並且p存放了普通變數i的地址則p指向了普通變數i*p 就完全等同於i或者說:在所有出現*p的地方都可以替換成i在所有出現i的地方都可以替換成*pprintf("%d\n",i); //輸出3printf("%d\n",*p); //輸出3*p 就是以p的內容為地址的變數*/j = *p;printf("i = %d ,j = %d ,*p = %d \n",i,j,*p);  //結果i = 3 ,j = 3 ,*p = 3printf("i的地址是:%p\n",&i);  //c語言中%p用來輸出指標類型自身的值。也就是說%p用來輸出地址printf("j的地址是:%p\n",&j);printf("p的地址是:%p\n",&p);printf("p的值是:%p\n",p);/*輸出結果:i = 3 ,j = 3 ,*p = 3i的地址是:0019FF38j的地址是:0019FF34p的地址是:0019FF3Cp的值是:0019FF38*/return 0;}//變數i的地址是0019FF38,i的值是3//變數p的地址是0019FF3C,p的值是0019FF38,即p的值就是i的地址//*p 就是以p的內容為地址(即i的地址0019FF38)的變數,所以*p的值是3//注意,你在啟動並執行時候地址肯定不是這樣的,但是i的地址和p的值一定是一樣的

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.