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

最赞回答 / Hello_Word_
p+1 中1指的是一个单位长度,这里的单位长度是由数据类型决定的,=1*该数据类型所占字节数,这里面p的数据类型为自定义的结构体,+1移动的字节数就是一个结构体的长度,,,,,不懂请追问

已采纳回答 / 筑梦之队
//倒序打印for(index=0; index<=length/2-1; index++)        //二分 交换 {    temp = word[index];    word[index] = word[length-index-1];    word[length-index-1] = temp;}1、一个基本的错误为:没有意识到数组的下标是位于[0,length),所以导致出现了后面两个问题:2、二分交换的结束值的取值有问题。应该是length/2-1,而不是(length+ind...

最新回答 / 叶小柒
结构体定义语句后面没有加分号scanf 和 printf 语句的数据输入之间没有加分隔符建立链表时头指针head要为NULL

最新回答 / levy_liang
是为了不浪费内存,达到最优的效果。不用也可以,但是当数据多了会很占用内存。这就会牵扯到机器的性能了。

已采纳回答 / 天之大
malloc返回的是开辟空间的首地址,他并不知道你放的是什么类型的东西,所以要用第一个括号中的内容强制转换指针类型为struct weapon*,和p1的类型转为一样,否则会警告指针类型不符合sizeof运算符可以求类型所占空间大小比如sizeof(int),也可以求某个量的空间大小,比如struct weapon weapon1={......};可以用sizeof(weapon1)求他的大小,等于sizeof(struct weapon)

已采纳回答 / 天之大
是的,自己试试就知道了,不过要写为struct weapon weapon1={1,2};&weapon1.a和&weapon1

最赞回答 / 天之大
程序运行结束,系统会自动释放,所以不会错误,但是手动释放是个好习惯,可能老师忘了。。

最新回答 / Stanislas
不一定要free,在该程序结束后内存会自动释放。需要free的情况是在程序运行过程中,出现反复调用内存的情况,这时候为了提高效率,不再用到的内存就free掉

已采纳回答 / 慕粉13285976209
首先, p1和p2是指针, 他们都指向一个地址. 这里的scanf中取的是(p1->atk)这个整体的地址. "->"的优先级高于"&".
课程须知
本课程为C语言的中级课程 1、需要有一定的C语言基础,如有基础薄弱的童鞋可以看一下网站上其他3门C语言的课程 2、因在Linux环境下,需会一些Linux下的命令,可以看一下《Linux C语言编程原理与实践》此课。
老师告诉你能学到什么?
1、预处理是干什么的 2、结构体是什么 3、公用体是什么 4、位运算是怎么回事 5、如何实现动态数据结构体 6、递归的原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消