又話指針

先來看一下例子:

#include<cstdio>
int main(){
    int * p;
    int * q;
    int a[5];//一個int類型是4個字節,一個字節是8位
    //一個字節是一個地址,即一個int類型的變量是佔4個地址
    a[0] = 4;
    a[1] = 5;
    p = a;//把數組首地址傳給指針變量p
    q = a+1;//把數組中第二個數的地址傳給指針變量q
    printf("數組第一個數的地址是:%p\n",p);
    printf("數組第二個數的地址是:%p",q);




return 0;
}

上面例子的輸出是:



通過分析上面的例子,需要記住的有三點:

①一個字節是一個地址
②一個字節是8位
③一個指針變量存放的只是變量的首地址


同時需要注意的是:所有的指針變量都只佔4個字節!!!


大家如果不信的話可以通過下面的程序來驗證一下:

#include<cstdio>
int main(){
    double * p[3];
    double i[3] ={4,1,0};
    double ** m;//m存儲的是指針變量p[0]的地址
    double ** n;//n存儲的是指針變量p[1]的地址
    p[0] = &i[0];
    p[1] = &i[1];
    m = &p[0];
    n = &p[1];
    printf("%p\n",m);
    printf("%p\n",n);
return 0;
}

輸出結果爲








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章