struct a{};
a*temp=new a[];
a exa[4];
temp=exa[0];
temp+1=exa[1];
```
请问能不能这样赋值?
结构体不是可以直接赋值吗?而且机构体名就是地址,指针也是地址?为什么我这编译不过去 说无法从“a”转化为“a*”?这是怎么回事?详细讲一下吧 谢谢了
我怎么能把temp 也改成结构体对象?用&失了一下说 &要求左值 这是怎么回事?
追答没太明白你的意思,自己试一下,然后多思考一下,学习要靠自己动脑子。
你说的是
a temp;
temp =&a;
这样吗?
temp =a[0]肯定可以的呀。
a*temp=new a[];
a exa;
&exa=temp;这样为什么也不行?说&要求左值 exa表示的是第一个的地址吧 加上&是不是可以理解成第一个的对象 ; 可是temp其实也是个地址啊 我总觉得把temp(本质是地址)赋给一个指针变量没问题的 而且这时候“=”没有被重载吗?
&exa是取一个地址,取完了地址当然得把地址放在一个地方啦。
a只是个变量,不是指针。取了地址也只是址,不是指针。不明白你这样做的意图。没这么用过。
哈哈 刚才说错了····基础不扎实····我本来是想用的间接引用符* 结果用成了取地址···现在好了
我在指针前边加了* 就可以直接将结构变量赋给指针所指的对象了
你能说 机构体变量的之间的相互赋值 比如 struct temp; temp a,b; a=b;这句是将b的地址赋给a吗?这里面难道没有操作符重载?