數組中a和&a的區別

來源:互聯網
上載者:User

        最近在看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)

下面程式的運行結果為?

#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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.