c语言_指针引用数组元素并打印输出


#include<stdio.h>

void main()
{
    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int (*p)[4];
    int row,col;
    p=a;            /*指针p指向元素为4的数组*/
    
    /*打印输出数组指针p指向的数组的值*/
    for(row=0;row<3;row++)
    {
        for(col=0;col<4;col++)
            printf("a[%d,%d]=%-4d",row,col, *(*(p+row)+col));
        printf("\n");
    }
    /*通过改变指针p修改数组a的行地址,改变col的值修改数组a的列地址*/
    for(p=a,row=0;p<a+3;p++,row++)
    {
        for(col=0;col<4;col++)
            printf("(*p[%d])[%d]=%p",row,col,((*p)+col));
        printf("\n");
    }
}




a[0,0]=1   a[0,1]=2   a[0,2]=3   a[0,3]=4                                                                              
a[1,0]=5   a[1,1]=6   a[1,2]=7   a[1,3]=8                                                                              
a[2,0]=9   a[2,1]=10  a[2,2]=11  a[2,3]=12                                                                             
(*p[0])[0]=0x7fffa2e0d7c0(*p[0])[1]=0x7fffa2e0d7c4(*p[0])[2]=0x7fffa2e0d7c8(*p[0])[3]=0x7fffa2e0d7cc                   
(*p[1])[0]=0x7fffa2e0d7d0(*p[1])[1]=0x7fffa2e0d7d4(*p[1])[2]=0x7fffa2e0d7d8(*p[1])[3]=0x7fffa2e0d7dc                   
(*p[2])[0]=0x7fffa2e0d7e0(*p[2])[1]=0x7fffa2e0d7e4(*p[2])[2]=0x7fffa2e0d7e8(*p[2])[3]=0x7fffa2e0d7ec    


更多推荐