c语言 指针和二维数组

来源:互联网 发布:手机音乐后期制作软件 编辑:程序博客网 时间:2024/05/23 12:06
// 指针和二维数组#include <stdio.h>int main(int argc, const char * argv[]){    int a[3][6];    for (int i=0; i<3; i++) {        for (int j=0; j<6; j++) {            a[i][j]=i+j;        }    }    //输出数组元素    for (int i=0; i<3; i++) {        for (int j=0; j<6; j++) {            printf("%d\t",a[i][j]);        }        printf("\n");    }    /*     012345     123456     234567     */    printf("\n");    //使用指针输出的方法    for (int i=0; i<3; i++) {        for (int j=0; j<6; j++) {            printf("%d\t",*(a[i]+j));        }        printf("\n");    }    int *p1,*p2;    p1=a[0];//指向第一行的首地址    p2=a[2];//指向第三行的首地址    printf("%d\n",*p1);//0 即a[0][0]    printf("%d\n",*p2);//2 即a[2][0]        /*     1.&a[0][0]是数组0行0列的地址,&a[m][n]是数组m行n列的地址     2.*(a[0]+n) 表示第0行的第n的元素     */    //另一种输出方法    int *p3=a[0];//指向首地址    for (int i=0; i<3; i++) {        for (int j=0; j<6; j++) {            printf("%d\t",*p3++);        }        printf("\n");    }        printf("\n");        int *p4=a[1];    for (int i=0; i<6; i++) {        printf("%d\t",*(p4 +i));//输出第二行    }        return 0;}

原创粉丝点击