结构的赋值?
书上介绍说, 如果成员的内容是一个数组的时候,不能通过赋值来拷贝。
可我试了还是可以的呀。。以下代码是关于结构的定义
#define TSIZE 45
struct film
{
char title;
int rating;
};
typedef struct film Item;
typedef struct node
{
Item item;
struct node*next;
} Node;
typedef Node* List; 彭尼玛 发表于 2018-9-24 18:53
这样做没有拷贝吧?应该只是建立指针参考而已 claws0n 发表于 2018-9-24 19:07
这样做没有拷贝吧?应该只是建立指针参考而已
有的有的,拷贝结构变量了。item是结构Item类型的结构名,然后pnod->item又是Item的结构名,所以可以把这里面的item结构名给Node结构里面去。。 彭尼玛 发表于 2018-9-24 19:35
有的有的,拷贝结构变量了。item是结构Item类型的结构名,然后pnod->item又是Item的结构名,所以可以把这 ...
你是有索引权,但问题在于是不是拷贝了一份。你用 node 修改内容,然后打印 film, 看是不是被修改了,如果是,那就证明没有拷贝,只是单纯的建立索引。 claws0n 发表于 2018-9-24 19:41
你是有索引权,但问题在于是不是拷贝了一份。你用 node 修改内容,然后打印 film, 看是不是被修改了,如 ...
??不太懂意思?? 彭尼玛 发表于 2018-9-24 23:49
??不太懂意思??
你说拷贝成功,那就用拷贝的那一份修改内容 List->item.title[..] = xxx 应该是吧
你 Item 实例的结构变量是啥?叫 Film 好了,然后 printf("%c", Film.title[..]); 看是不是被修改了
如果被修改了就说明不是拷贝 结构体赋值是可以的, 数组不行 就像 struct a,b;a = b;没问题;但是你如果char arr;char arr2; arr = arr2;就是错误的 另外楼上说的也不对,我看了下代码 pNode->Item 就是一个结构体,并不是指针,就是拷贝结构体
页:
[1]