Q:为什么D不对?
A:
*p是用来计算的
*的意思是提取p对应地址的变量值
不能让*p=其他变量或者数
p对应的是字符数组的首位的地址
*p对应的是字符数组首位元素
Q:能不能理解成*(p=data.a)?
A:
p=data.a也不对
p是个指针,指针要指向地址,所以必须是p=&xxx,但p可以直接等于数组名 如:p=stu 因为数组名就是数组首位的地址,所以其实指针就是一种数组。
Q:不能理解
A:
定义数组p时是结构体数组,所以p不能等于stu.name,如果要等于,就得把name强制转化成结构体数组,只要这两个数组的数据类型不一样都得强制转化。
因为p等于的是name,可以把p看作数组名。
这篇博客探讨了C/C++中指针与数组的关系。强调了指针*p用于获取地址上的值,而不能直接赋值为其他变量或数值。解释了数组名即为首地址,因此指针可以直接等于数组名。同时指出,在结构体数组情况下,不能直接将指针赋值为成员变量,需要进行类型转换。
1213

被折叠的 条评论
为什么被折叠?



