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

 

posted @ 2023-04-06 16:45  myrj  阅读(70)  评论(0编辑  收藏  举报