大神帮忙看看,谢谢!
#include<stdio.h>void main()
{
char string[]="I love Fishc.com!";
printf("%s\n",string);
}
为什么是%s能输出 I love fishc.com! ?
而%c输出的是4?
什么原因? 因为字符串就是用 %s 呀
你想问的是 为什么用 %c 输出的是 4 吗?
人造人 发表于 2017-7-22 21:50
因为字符串就是用 %s 呀
你想问的是 为什么用 %c 输出的是 4 吗?
是不是因为string占用4个字节存放string对应的cs/ip?{:10_277:} string 是数组名,是数组首元素的地址
用 printf("%X\n",string); 可以查到此地址的16进制形式为:18FF34
二进制形式为:0000 0000 0001 1000 1111 1111 0011 0100
最低1个字节为:0011 0100
对应十进制 52,是字符4的ASCII码。
因此,用 printf("%c\n",string);结果是4。 楼上解析得很对{:10_279:} 4楼正解,string是首元素I的地址,用%s的时候他约定输出字符串,但是当%c的时候他就把string当成一个数值来算了。
页:
[1]