struct stu *p_boy2=&boy2;这句中的*p_boy2是个结构体,而&boy2是个地址,为什么能用“=”赋值?
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
首先要理解指针的定义, 指针是什么? 不就是个标志嘛, 什么标志?地址的标志.
不管什么结构, 什么数据,在内存里都不过是000111之类的东西. 所以指针可以指向任何结构(如同邮寄东西的时候, 地址可以是个单位,建筑,街道或门牌)
struct stu *p_boy2=&boy2;
这里struct stu *p_boy2, 应该这样理解(struct stu *) p_boy2 --一个指向stu结构的指针. 或这样理解 struct stu (*p_boy2); *p_boy2是个stu结构, 由*的取值意义来看, p_boy2就是个地址了(这样理解感觉有点勉强).
所以,这句话没有问题, 因为它是两句话:
struct stu *p_boy2; //定义stu指针
p_boy2=&boy2;//指针赋值
这样理解就不会有歧异了, 但提问这需要多接触C基本文法,万事开头难.指针用好了是个很有用的东西.
浮云间
TA贡献1829条经验 获得超4个赞
*p_boy2是指向结构体struct stu 的指针,
struct stu *p_boy2=&boy2
是让*p_boy2指向结构体变量boy2
p_boy2里面放的是boy2的地址
- 3 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消