关于C语言%d的问题。。。

henroohenback6 2009-09-28 07:23:13
先上代码。。:::

int main( void )
{
int *i=NULL;
char c='a';
char *s="abc";
i=(int*)&c;
printf("%d\n",*i);
printf("%d\n",s);
return 0;
}


输出结果为::
318733153
4333604

不知道为什么?? 不应该是a和abc的吗??
请犀利的各位解答下。。。感激了。。。
...全文
4097 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
ken135790 2011-11-02
  • 打赏
  • 举报
回复
2楼,4楼正解
ffffhree123 2009-12-17
  • 打赏
  • 举报
回复
学习
「已注销」 2009-10-05
  • 打赏
  • 举报
回复
学习
密斯刘 2009-10-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jackyjkchen 的回复:]
%d是输出整数用的,要输出字符用%c,字符串用%s
[/Quote]
orz 这位大哥用VS2010了……
booksoon 2009-10-05
  • 打赏
  • 举报
回复
在计算机内存里,任何数据都是二进制的,没有什么字符、数字之分,完全靠%的标志来决定输出什么
即使是
char c = ‘a’;
用%c输出就是a。用%d输出就是a的ascii码
神经门首 2009-10-05
  • 打赏
  • 举报
回复
都有结果了
yeexiwang 2009-10-05
  • 打赏
  • 举报
回复
哈哈 我新手路过哦 不错
火山1009 2009-10-02
  • 打赏
  • 举报
回复
哇好多 人都给出了答案
玖伍叁柒 2009-10-02
  • 打赏
  • 举报
回复
已经有正解了
我就不多说了
shashenyidaoOCEAN 2009-10-02
  • 打赏
  • 举报
回复
d%是数字啊!!改成s% 就好了
Wizardo0 2009-10-01
  • 打赏
  • 举报
回复


嗯·~~学习了~~~
chenzhp 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jackyjkchen 的回复:]
在计算机内存里,任何数据都是二进制的,没有什么字符、数字之分,完全靠%的标志来决定输出什么
即使是
char c = ‘a’;
用%c输出就是a。用%d输出就是a的ascii码
[/Quote]。
赵4老师 2009-09-30
  • 打赏
  • 举报
回复
在调试窗口里面打开汇编指令显示不就什么都知道了。
todo9351 2009-09-30
  • 打赏
  • 举报
回复
呵, 学习
历史哭泣 2009-09-30
  • 打赏
  • 举报
回复
你自己看看为什么,运行一下
wotur 2009-09-30
  • 打赏
  • 举报
回复
答案太多了,我就直接接分了!
shuminwang2008 2009-09-30
  • 打赏
  • 举报
回复
第一个输出,输出的是地址i的十进制数,输出的有随机数,因为i是从char转换成int,就要扩展4个字节,这4个字节的值是随机的。
第二个输出,输出的是s的十进制地址值。
userlon 2009-09-30
  • 打赏
  • 举报
回复
char c='a'; // 一个字节
i=(int*)&c; // c的地址赋给i,并转换成整型地址,也就是多占了三个字节,会造成内存异常
printf("%d\n",*i); // 以整型值输出地址i处的值,也就是四个字节的值
printf("%d\n",s); // 以整型值输出地址s处的值,也就是四个字节的值
shuminwang2008 2009-09-30
  • 打赏
  • 举报
回复
把第一个%d改成%c

把第二个%d改成%s

feliciaskiy 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jackyjkchen 的回复:]
引用 6 楼 henroohenback6 的回复:
我就想知道得到为什么那个结果。。。第一个貌似像随机数。。。而第二个为什么结果是地址??编译器是怎么处理这个过程??哪位哥能回答我??

第一个之所以是随机数,那是因为32位的int取了8位char的地址,位数不足自然要取后面更多位,后面的数据是未定义的

第二个你获得的就是s串的首位地址
[/Quote]


同意,讲得很清楚~
加载更多回复(20)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧