/*输出二维数组的有关数据和值*/
#include <stdio.h>
#include <stdlib.h>
/*在C语言中,一维数组与二维数组在指针的使用上有所不同
*1.在一维数组a[n]中,a表示数组的首地址,a[i]表示特定的元素
*2.在二维数组a[m][n]中,a表示数组的首地址(数组中数组的首地址或整个储存空间的首地址),a[i]表示第i行的首地址
*3.C语言中 a[i]与*(a+i) 等价*/
int main(void) {
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf("%d,%d\n",a,*a);//0行首地址和0行0列元素地址
printf("%d,%d\n",a[0],*(a+0));//0行0列元素地址
printf("%d,%d\n",&a[0],&a[0][0]);//0行首地址和0行0列首地址
printf("%d,%d\n",a[1],a+1);//1行0列元素地址和1行首地址
printf("%d,%d\n",&a[1][0],*(a+1)+0);//1行0列元素地址
printf("%d,%d\n",a[2],*(a+2));//2行0列元素地址
printf("%d,%d\n",&a[2],a+2);//2行首地址
printf("%d,%d\n",a[1][0],**(a+1));//1行0列元素的值,同*(*(a+1)+0)
printf("%d,%d\n",*a[2],**(a+2));//2行0列元素的值
printf("%d,%d,%d\n",a,*a,**a);//test
return 0;
}
调试结果
6422048,6422048
6422048,6422048
6422048,6422048
6422064,6422064
6422064,6422064
6422080,6422080
6422080,6422080
9,9
17,17
6422048,6422048,1
版权声明:本文为qq_44383074原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。