char s1[ ]={"tree"},s2[]={"flower"};printf("%c%c",s1,s2);
答案:2 悬赏:30
解决时间 2021-02-12 20:17
- 提问者网友:若相守£卟离
- 2021-02-12 17:24
char s1[ ]={"tree"},s2[]={"flower"};printf("%c%c",s1,s2);
最佳答案
- 二级知识专家网友:最后战士
- 2021-02-12 19:00
s1、s2 代表是字符串的首地址,也就是相同于指针,存储的是一个地址,所以s1、s2就应该是一个2字节或者4字节(看你计算机是多少位的的,也和你的编译器有关)十六进制数,你可以用%p打印出地址,或者 %x (16进制数的形式)打印一下就知道了。
当你使用 %c打印输出时就会将这个地址转当做一个 char 型数据,但char只有一个字节,所以只会截取地址的低1字节的地址进行打印输出(也和编译器有关),建议测试确定自己编译器。
例如:
printf("%p“,s1); 输出:FF61 (计算机为16位或者是TC编译器情况下,32位则打印出4个字节例如: 0000FF61)具体数据自己进行上机测试
printf("%c“,s1); 输出:a (截取低一个字节,就是十六进制下的 61,装换为ASCII就是97,即字符a的ASCII,故打印出a.
当你使用 %c打印输出时就会将这个地址转当做一个 char 型数据,但char只有一个字节,所以只会截取地址的低1字节的地址进行打印输出(也和编译器有关),建议测试确定自己编译器。
例如:
printf("%p“,s1); 输出:FF61 (计算机为16位或者是TC编译器情况下,32位则打印出4个字节例如: 0000FF61)具体数据自己进行上机测试
printf("%c“,s1); 输出:a (截取低一个字节,就是十六进制下的 61,装换为ASCII就是97,即字符a的ASCII,故打印出a.
全部回答
- 1楼网友:闲懒诗人
- 2021-02-12 20:17
你好!
将输出改为printf("%s%s",s1,s2)试试
如果对你有帮助,望采纳。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |