c语言清指教下

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:58:36
在指针中,把一个数组的首元素地址赋给p
int *p=&a[0]是否正确啊?书上说,这就等价于 int*p;p=&a[0];
但是怎么能把地址给*p呢?p才是表示地址啊?书上对不对啊?

p才是放地址的。*p是内容。
int*p;//声明了一个指向整型变量的指针P
p=&a[0]; //把数组a[0]的地址赋值给了p。*p就代表了a[0]
这个办法是把声明和赋值分开进行。
int *p=&a[0] //是把声明和赋值同时进行。没有错,就是这么规定的。就是把刚才的两句并在一起,省写一个p而已。

关于指针是这样的&叫取址符。它会把数组所站内存的开头地址提取出来附值给指针。至于你所说的P它是一个INT型的数。相信你在声明的时候已经明白了。而*P不一样他代表的就是a[0].
就和你声明一个int型的b int b=1;
声明B的同时就把1附给了B。
你的那个和这个意思是一样的。声明一个P指针。指向a[0].两步放在一步做了。

int *p=... 这个是初始化。那个*是和int连着的表示int *类型p是单独的。

int i=1;
这个你懂吧?
一个道理

楼上说得说,初始化和赋值是两回事。