char s[2] = {'0','1'}; s代表的是数组的首地址 问题: printf(“%c”,s) 打印出 0;

pintf(“%c”,s++)这个表达式是错误的呢?... pintf(“%c”,s++)这个表达式是错误的呢? 展开
 我来答
luanqiang5630
推荐于2016-01-18
知道答主
回答量:16
采纳率:0%
帮助的人:11.4万
展开全部
char s[2]
s是常量不能自加
你可以这样打印
printf("%c",*(s+1))

printf("%c",s);//不可能打印出来 ‘0’ 应该这样打印printf("%c",*s);
追问
printf("%c",s);  // 的确打印出字符 0,你可以试试,我试过的
追答
char s[2]={'0','1'};
printf("%x___%x\n",s,&s[0]);//这个打印的结果是相同,都是s字符串的首地址,
printf("%c",s[0]);//打印 0
printf("%c",s);//不可能打印出来零,只是把地址转换成了字符输出,你打印0 应该是偶尔出现的 巧合
dreambox007
2014-05-28 · TA获得超过417个赞
知道小有建树答主
回答量:295
采纳率:100%
帮助的人:260万
展开全部
你打印地址出来干嘛呢?

s 改成 *s 看看
追问
s是首数组的地址,s++不是地址了,这个写法是错误的,编译器报错,知道为什么吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呼叫阿哲
2014-05-28
知道答主
回答量:13
采纳率:0%
帮助的人:4万
展开全部
因为是c%,printf出来的是字符
追问
不是%c是字符的原因,我问的是 s++这个表达式是错误的,知道为什么吗
追答
因为你上面打错了,“printf”,你是“pintf”?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式