int main() {
int a[4] = {1, 2, 3, 4};
//指针数组
int *b[4];
//数组指针
int (*c)[4];
c = &a;
for (int i = 0; i < 4; i++) {
b[i] = &a[i];
}
printf("%d,%d", *b[1], c[0][1]);
}
定义了数组指针,该指针指向这个数组的首地址,必须给指针指定一个地址,容易犯的错得就是,不给b地址,直接用(b)[i]=c[i]给数组b中元素赋值,这时数组指针不知道指向哪里,调试时可能没错,但运行时肯定出现问题,使用指针时要注意这个问题。但为什么a就不用给他地址呢,a的元素是指针,实际上for循环内已经给数组a中元素指定地址了。但若在for循环内写a[i]=c[i],这同样会出问题。