c++ 结构数组名赋值给结构指针

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:25:23
我定义了一个结构数组Node a[10],定义了一个结构指针Node *n;
能不能这样赋值:
n=a[i];//i是初值为0的下标;
我编译时提示的错误是:error C2679: binary '=':no operator defined which takes a right-hand operand of type 'struct Node' (or there is no acceptable conversion)

如果不能这样赋值,那我应注明吧n指向结构数组的某个结构元素呢?还请高手帮忙解答

用n=&a[i];

取地址赋值,n是一个指针,存放地址

“数组名就是数组的首地址”。
而且数组是连续的内存地址的,Node a[10]中可以知道 a就是a[10]的首地址 那a[i]的地址也就是“a+i”了

所以除了楼上给出的那个方式外 你的问题答案还有 n=(a+i);