下面语句错误的是( )。 A. int *p; *p=20; B. char *s="abcdef"; printf("%s\n",s); C. char *str="abcde

下面语句错误的是()。A.int*p;*p=20;B.char*s="abcdef";printf("%s\n",s);C.char*str="abcdef";str++... 下面语句错误的是( )。
A. int *p; *p=20;
B. char *s="abcdef"; printf("%s\n",s);
C. char *str="abcdef"; str++;
D. char *str;str="abcdef";
展开
 我来答
犁俊达4G
推荐于2018-03-31
知道答主
回答量:7
采纳率:0%
帮助的人:3.7万
展开全部
楼上四位是啥意思吗!~
严格意义上说,这些都不算错误啊。
A:它就是初始化啊,只不过是分了两行代码初始化而已;
B:printf标准输出中,%s就是输出字符串类型,传一个char指针是没有错的;
C:看起来比较怪,但是str++后,指针向高位增加了一位,指向了"bcdef",也是可以的;
D:“abcedf”也是个字符串,用str指针来指向这个字符串的地址是没有错的。
建议楼主去做个试验,所有这些选项编译链接运行应该都是OK的。
百度网友bf83aa752
2012-06-04 · TA获得超过132个赞
知道答主
回答量:67
采纳率:0%
帮助的人:48.8万
展开全部
嗯,好吧,A是运行有问题的,其他三个都能运行,就只有A编译的时候没问题,但运行时会出错。
至少要变成这样,才没错,如下:
int *p,i=20;
p=&i;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Safirst
2012-06-04 · TA获得超过976个赞
知道小有建树答主
回答量:1283
采纳率:50%
帮助的人:655万
展开全部
C是错误的,指向的位置不应该可以被修改,就像数组的基址一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tlyzbcy
2012-06-04 · TA获得超过892个赞
知道小有建树答主
回答量:571
采纳率:100%
帮助的人:457万
展开全部
A,指针p没有初始化,就对其指向的地址赋值,后果不确定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清水青叶
2012-06-04 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:34万
展开全部
B,就差个B了,补上。
s是地址,%s是字符串,如何输出?O(∩_∩)O
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式