C语言:二维数组与指针
a代表二维数组的地址,通过指针运算符可以获取数组中的元素 1.a+n表示第n行的首地址 2.&a[0][0]既可以看作数组0行0列的首地址,同样也可以看作是二维数组的首地址 &a[m][n]是第m行第n列元素的地址 3.&a[0]是第0行的首地址,&a[n]是第n行的首地址 4.a[n]+n表示第0行第n个元素地址 5.*(*(a+n)+m)表示第n行第m列元素 6.*(a[n]+m)表示第n行第m列元素 7. *(a+n) a[n]相同含义
设有声明语句“int b[3][3]={1,2,3,4,5,6,7,8,9};”,下面语句中不能输出数组元素b[1][2]的值6的是 D _。 A.printf("%d",*(*(b+1)+2)); B.printf("%d",*(&b[2][0]-1)); C.printf("%d",*(b[1]+2))
#include <stdio.h> #include <stdlib.h> main() { int b[3][3]={1,2,3,4,5,6,7,8,9}; printf("%d\n",*(b+1)[2]) ; printf("%d\n",&b[1][1]); printf("%d\n",*(*(b+1)+2)); printf("%d\n",*(&b[2][0]-1)); printf("%d\n",*(b[1]+2)); getchar(); }
; D.printf("%d",*(b+1)[2]);
A b+1 第2行,第三个元素 6
B b[2][0]=7 7-1=6
C b[1]第2行第一个元素,4,4+2=6
D