为了账号安全,请及时绑定邮箱和手机立即绑定

关于struct的定义

在struct里定义char 类型必须用数组形式吗? 

char name[20]能不能改成char name?

不能的话存在什么错误?

为什么下面定义的int类型的atk和price没有写成atk[20]和price[20]?

正在回答

2 回答

char类型的数据是一个字符型数据 比如char name='a'; 而人的名字是多个字符组成,所以需要用一维数组进行存放,而后面的atk指的是攻击力 而int型数据范围一般是0-2^32,所以只需要一个int就ok了 例如 ak-74的攻击力为500 我们可以写为 atk=500; 价格同理 你说的如果 后面代表攻击力的与价格的变成一个数组 那么它们可以存放多个武器的价格与攻击力, 与需求不符 所以没有用数组。。你要自己练一练就知道了  

0 回复 有任何疑惑可以回复我~
#1

Jessibel 提问者

感谢!
2017-05-28 回复 有任何疑惑可以回复我~
#2

慕丝3566996

那20能不能换成别的数呢?
2019-11-06 回复 有任何疑惑可以回复我~

首先char name[20]应该不可以改成char name。然后,char定义字符类型的数据占1个字节,int定义整型数据占2个字节。我猜,char name[20]的最后一个地址应该是int atk 数据存放的上一个地址,为防止名字过长溢出,影响到后面int atk里存放的数据,所以给char name 加上[20]。最后,没有给int atk和int price加上长度限制是因为int的声明已经足够存放数据所以不用加[]。我想其实应该是可以给int atk 和int price加长度限制的,这里面的一些原理我没懂得很透彻,所以只能帮你到这里了~~不知道对错,请后面看到的人指点,这只是本人一点浅薄的看法~抛砖引玉用~

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于struct的定义

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信