C语言课件,清华大学出版的书的配套的.很好用,尽管下载.

源代码在线查看: 例10.11.txt

软件大小: 4423 K
上传用户: fpeisheng
关键词: C语言 清华大学
下载地址: 免注册下载 普通下载 VIP

相关代码

				  例10.11输出二维数组有关的值。
				#define FORMAT "%D,%D\n"
				  main()
				  {int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
				   printf(FORMAT,a,*a);
				   printf(FORMAT,a[0],*(a+0));
				   printf(FORMAT,&a[0],&a[0][0]);
				   printf(FORMAT,a[1],a+1);
				   printf(FORMAT,&a[1][0],*(a+1)+0);
				   printf(FORMAT,a[2],*(a+2));
				   printf(FORMAT,&a[2],a+2);
				   printf(FORMAT,a[1][0],*(*(a+1)+0));
				  }
				  运行结果如下:
				158,158(第0行首地址和0行0列元素地址)
				158,158(0行0列元素地址)
				158,158(0行首地址和0行0元素地址)
				166,166(1行0列元素地址和1行首地址)
				166,166(1行0列元素地址)
				174,174(2行0列元素地址)
				174,174(第2行首地址)
				9,9(1行0列元素的值)
				  请注意,a是二维数组名,代表数组首地址,但是不能企图用*a来得到a[0][0]的值。*a相当于*(a+0),即a[0],它是第0行地址(本次程序运行时输出a、a[0]和*a的值都是158,都是地址。请注意:每次编译分配的地址是不同的)。a是指向一维数组的指针,可理解为行指针,*a是指向列元素的指针,可理解为列指针,指向0行0列元素,**a是0行0列元素的值。同样,a+1指向第1行首地址,但也不能企图用*(a+1)得到a[1][0]的值,而应该用**(a+1) 求a[1][0]元素的值。			

相关资源