输出二维数组的有关数据和值

  • Post author:
  • Post category:其他


/*输出二维数组的有关数据和值*/
#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 版权协议,转载请附上原文出处链接和本声明。