int *p[10]` 和 `int (*p)[10]` 在C语言中并不等价。
1. `int *p[10];`
这个声明表示p是一个数组,包含10个元素,每个元素都是一个指向整型变量的指针。也就是说,p是一个指针数组,可以存储10个int类型的指针。
2. `int (*p)[10];`
这个声明表示p是一个指向数组的指针,这个数组有10个int类型的元素。也就是说,p是指向具有10个int元素的数组的指针。
总结来说:
- `int *p[10]` 是一个数组,数组里的每个元素都是int指针。
- `int (*p)[10]` 是一个指针,它指向的是一个包含10个int元素的数组。