⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例10.11.txt

📁 C语言程序设计的第二版源码
💻 TXT
字号:
  例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]元素的值。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -