3个回答
展开全部
A的意思是取n的地址赋给指针p ,*p表示取指针p里的变量值,正确是p=&n;
B同理,输出的是变量值,而不是地址,正确是printf("%d\n”,*p);
C格式输入函数scanf后面参数是取地址值,乍看&p好像对,但是别忘了p是指针变量,本身作用就是保存地址,所以正确是scanf("%d",p);
第一题嘛,if(a=1)b=1;后面有一个分号,看到了吗,这样if语句就结束了,所以后面还加else语句就会出错咯
B同理,输出的是变量值,而不是地址,正确是printf("%d\n”,*p);
C格式输入函数scanf后面参数是取地址值,乍看&p好像对,但是别忘了p是指针变量,本身作用就是保存地址,所以正确是scanf("%d",p);
第一题嘛,if(a=1)b=1;后面有一个分号,看到了吗,这样if语句就结束了,所以后面还加else语句就会出错咯
追问
求大神进一步解释……?? if(表达式1) 语句1;else(表达式2) 语句2;
这样就是正确的格式不是吗??if后的分号应该不算错啊??只是c=2部分不属于if控制的范围啊??
追答
大神不敢当,我也在学,你的问题问到我了,我刚才测试了一下,原来我也错了,if语句如果有多条语句就要用大括号{}括起来,这就是错的地方。还有不明白在问,互助互利嘛。
不加花括号if语句就只控制b=1,那么c=2肯定会执行了。加了花括号也会执行,因为包含在if语句里
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A. 这么理解,p就是内存地址,*p就是指向p的内容。&n,是取n的地址
B. printf 后面带的是内容,不是地址
C. scanf是内存地址,如果前面是int n, p,那么这样就对了
B. printf 后面带的是内容,不是地址
C. scanf是内存地址,如果前面是int n, p,那么这样就对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
24)中,
A:定义中*p表示p是指针;而语句“*p=&n”,表示将变量n的地址存放在指针p的地址中。而不是用指针p指向变量n的地址。正确的应该是p=&n;故A错
B:输出的是指针p的地址,而不是指针指向的内容,正确的应该是printf("%d\n",*p);
C:p本来就是一个指针,如果在对其取址,则表示将数据输入给地址变量p对应的地址中,而不是赋给指针p指向的存储空间中。正确的应该是scanf("%d",p).
A:定义中*p表示p是指针;而语句“*p=&n”,表示将变量n的地址存放在指针p的地址中。而不是用指针p指向变量n的地址。正确的应该是p=&n;故A错
B:输出的是指针p的地址,而不是指针指向的内容,正确的应该是printf("%d\n",*p);
C:p本来就是一个指针,如果在对其取址,则表示将数据输入给地址变量p对应的地址中,而不是赋给指针p指向的存储空间中。正确的应该是scanf("%d",p).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询