鱼C论坛

 找回密码
 立即注册
查看: 2617|回复: 8

结构的赋值?

[复制链接]
发表于 2018-9-24 18:52:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
QQ图片20180924184136.jpg QQ图片20180924184225.png

书上介绍说, 如果成员的内容是一个数组的时候,不能通过赋值来拷贝。
可我试了还是可以的呀。。以下代码是关于结构的定义
#define TSIZE 45
struct film
{
        char title[TSIZE];
        int rating;
};
typedef struct film Item;

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-9-24 18:53:42 | 显示全部楼层
typedef struct node
{
        Item item;
        struct node*next;
} Node;
typedef Node* List; 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 19:07:18 | 显示全部楼层

这样做没有拷贝吧?应该只是建立指针参考而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-24 19:35:12 | 显示全部楼层
claws0n 发表于 2018-9-24 19:07
这样做没有拷贝吧?应该只是建立指针参考而已

有的有的,拷贝结构变量了。item是结构Item类型的结构名,然后pnod->item又是Item的结构名,所以可以把这里面的item结构名给Node结构里面去。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 19:41:54 | 显示全部楼层
彭尼玛 发表于 2018-9-24 19:35
有的有的,拷贝结构变量了。item是结构Item类型的结构名,然后pnod->item又是Item的结构名,所以可以把这 ...

你是有索引权,但问题在于是不是拷贝了一份。你用 node 修改内容,然后打印 film, 看是不是被修改了,如果是,那就证明没有拷贝,只是单纯的建立索引。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-24 23:49:45 | 显示全部楼层
claws0n 发表于 2018-9-24 19:41
你是有索引权,但问题在于是不是拷贝了一份。你用 node 修改内容,然后打印 film, 看是不是被修改了,如 ...

??不太懂意思??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-24 23:58:16 | 显示全部楼层
彭尼玛 发表于 2018-9-24 23:49
??不太懂意思??

你说拷贝成功,那就用拷贝的那一份修改内容 List->item.title[..] = xxx 应该是吧
你 Item 实例的结构变量是啥?叫 Film 好了,然后 printf("%c", Film.title[..]); 看是不是被修改了
如果被修改了就说明不是拷贝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-30 14:28:08 | 显示全部楼层
结构体赋值是可以的, 数组不行 就像 struct a,b;  a = b;没问题;  但是你如果  char arr[100];  char arr2[200]; arr = arr2;就是错误的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-30 14:29:58 | 显示全部楼层
另外楼上说的也不对,我看了下代码 pNode->Item 就是一个结构体,并不是指针,就是拷贝结构体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表