今天复习指针的时候看到书上讲二维数组中的两类指针:
- 一类是元素指针
- 一类是行指针
元素指针指向一个元素,行指针指向整个行。(这里比较难以理解的是行指针)
行指针可以转化为元素指针,方法是在前面加一个”
∗
”,指向改行的第一个元素。也就是说加上了”
代码
#include <stdio.h>
#include <string.h>
#define M 2
#define N 2
int main(int argc, char const *argv[])
{
int a[M][N] = {{1, 2}, {3, 4}};
int b[M] = {1, 2};
int (*p)[N];
p = a;
int *q[N];
// q = a;
printf("%d\n", *a);
return 0;
}
其中a在操作之后仍然是一个指针,包含的信息是地址。