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

已采纳回答 / RuthlessPotato丶
你把struct weapon *p你把它换成int *p,你看懂吗?定义struct类型的地址,其实struct也是一种类型了,C语言中给出了另一种构造数据类型——“结构”,不能只有int啥的是类型,struct也是类型。

已采纳回答 / RuthlessPotato丶
是的,p格式控制符“%p”中的p是pointer(指针)的缩写

已采纳回答 / 慕标6387096
#define pd(a) printf("输入的整数是:%d",a)#define pf(a) printf("输入的小数是:%d",a),在main中只要调用pd(3),pf(2.5)就能打印了

已采纳回答 / abcba1
这个问题很容易理解, 奇数的2进制,最低位(也就是最右边的那一位)一定为1,而偶数一定为0. 然后你再用1去与这个奇数或者偶数做位运算。就很容易看出来了。

已采纳回答 / Hisos
你是直接打印的next的地址啊,计算机怎么知道你要打印哪个结构体的next?修改为p &a.next

已采纳回答 / 122138763238273
如果只声明指针变量, 它的值是一个未知的, 不是默认为NULL.

已采纳回答 / xsxxsx
同一块地址,p1=p2是为了让p2保存p1的内容,好可以给p1赋予新的内存地址,而保证上一块地址不会丢失

已采纳回答 / spiritwyc
p2->next的含义是“指针”,指针指向下一个对象的地址,所以p2->next指向下一个对象p1,这是正确的,对象里保存的属性才是代码需要用到的,而指针只不过指向下一个取属性的对象,仅仅是指路功能;p2->next=p1->next,就变成指针指向指针,这样根据p2的指针取到的东西,并不是p1对象,而变成p1的下一个结点的指针,那就等于跳过了p1了,逻辑就不对了,所以p2的指针初衷就是要指向p1这个对象的。

已采纳回答 / 泡面吃胖的孙同学
按我的理解结构体指针传递的应该是结构体的首地址,你把p++后指向的是12个字节后的地址,并非下一个节点的首地址,而是下一个节点的指针地址,肯定无法读出数据,你可以试试在创建结构体的时候将指针写在第一个位置,等同于结构体首地址,应该可以。

已采纳回答 / HuangQingFeng
#include <stdio.h> struct nam{    char *name[20];  //用指针    int old;    float height;    struct nam * next;};int main(){    struct nam a,b, *head;    a.name[0]="李";  //第一个地址    a.old=16;    a.height=70.2;    b.name[0]="林";    b.old=21;    b.height=6...

已采纳回答 / NBAFifa
函数的代码都是一样的,所以地址一样,在栈里的位置是不一样的

已采纳回答 / LawrenceLam
这取决于自己限定的结束条件,例如fun(int a){    int  n;     if (a==0||a==1)n=1;     else n=fun(a-1)*a;     return n;}当a大于1,程序就会不停地递归直至a=1求出fun(1)的值,进而一层层求出fun(2)......fun(a),最后返回a的阶乘
课程须知
本课程为C语言的中级课程 1、需要有一定的C语言基础,如有基础薄弱的童鞋可以看一下网站上其他3门C语言的课程 2、因在Linux环境下,需会一些Linux下的命令,可以看一下《Linux C语言编程原理与实践》此课。
老师告诉你能学到什么?
1、预处理是干什么的 2、结构体是什么 3、公用体是什么 4、位运算是怎么回事 5、如何实现动态数据结构体 6、递归的原理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消