程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 數組中a和&a的區別

數組中a和&a的區別

編輯:關於C語言

 

最近在看C語言深入一點方面的書,感覺指針和數組的關系有很大要理解的地方。偶爾看到有人寫了關於指針和數組的長篇大論。直覺告訴我那是一篇好文章。一定是那位高手幾年來實踐和琢磨的成果。如果能達到他理解的那種水平,那我的C語言又會上一個台階。但是為了能有深刻的體會,我先不看他得文章,自己先琢磨一下。

int a[5]={0,1,2,3,4}

int *p1=a;           //將p1定義為指向數組a首元素的首地址,而不是指向數組a的地址,雖然值一樣,意義不一樣

a+i不等於&a+i

a+i==a+i*sizeof(a[0])而&a+i=a+i*sizeof(a)

下面程序的運行結果為? www.2cto.com

#include<stdio.h>

#include<stdlib.h>

int main()

{

    int a[5];

    int *p1=a;

    int *p2=&a;

 

    printf("%p\n",a);

    printf("%p\n",a+1);

    printf("%p\n",&a+1);

 

    system("PAUSE"); 

    return 0;

 

 

}

在我的機子上運行結果為:0022FF20

                                           0022FF24

                                           0022FF34

 

摘自 雷格碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved