你好,请问在C++中可以这样赋值吗?为什么?

struct stu *p_boy2=&boy2;这句中的*p_boy2是个结构体,而&boy2是个地址,为什么能用“=”赋值?

30秒到达战场
浏览 159回答 3
3回答

料青山看我应如是

首先要理解指针的定义, 指针是什么? 不就是个标志嘛, 什么标志?地址的标志.不管什么结构, 什么数据,在内存里都不过是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基本文法,万事开头难.指针用好了是个很有用的东西.

浮云间

*p_boy2是指向结构体struct stu 的指针,struct stu *p_boy2=&boy2是让*p_boy2指向结构体变量boy2p_boy2里面放的是boy2的地址

撒科打诨

“*”是指针类,后面的一大串都可以作一个识别符一大串实际也是地址
打开App,查看更多内容
随时随地看视频慕课网APP