int array[10];
int * p; int* p; int *p; // 等价的三种表示
p = &array[0];
或
int * p = &array[0];
或
int * p = array;
这里要说明的是,学习C 语言就是学习C 语言编译器对C语句怎么解释,
而且是对每个句子怎么解释,并不是把一个一个符号的解释拼起来,然后构成整个句子的解释。
比如 int * p = &array[0];
这句话编译器就认为是定义个一个指针p,指针p指向数组的首地址,
而不是定义一个指针p,p指向的地址的内容和数组第一个数据相同。
而* p = array[0]; 则表示p指针指向的内容和数组第一个数据相同。
这里没太多理论上的道理可讲,记住就行了。
类似这样的定义还有很多。都需要一个一个记住,然后理解意思,慢慢就初步掌握了C语言了。