指針數組

#include<stdio.h>

int main()

{
        int *a[5];int *o[5];//p是一個數組,5個元素,每個元素是int*
        int* d(double);//p是一個函數,形參double,返回類型 int*
        int(*p)[5];//p是一個指針,指向5個元素的int數組
        int x[5] = {11,22,33,44,55};//x是一個5個元素的int數組
        int m;//m是一個int變量
        int *n;//n是一個指針,指向int變量
        n = &m;
        int y[6] = {12,34,56,78,90,100};
        int z[3][5] = {{1,2,3,4},{5,6,7},{8}};
        p = &x;//x表示&x[0],int*類型,
                //用&x表示數組的地址,int(*)[5]類型
        int i,j;
        for(i = 0;i<5;i++)
                printf("%d ",(*p)[i]);//x[i]
        printf("\n");
        //p = &y; &y的類型是int(*)[6],不一致
        p = z;//數組名z表示z[0]的地址,是一個int[5]的地址
        for(i = 0;i<3;i++,printf("\n"))
                for(j = 0;j<5;j++)
                        printf("%d ",p[i][j]);// = z[i][j] = *(*(p+i)+j)        
        


        return 0;
}

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