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;}