发布网友 发布时间:2024-10-25 16:44
共5个回答
热心网友 时间:2024-10-25 18:02
好吧,哥哥,您的追问精神让我感动了,小弟斗胆献上一计,请君笑纳:
(1)就用VC++6.0建立一个C++工程吧,写上如下代码:
(2)然后按下键盘上的F10,进行单步调试运行,右键单击代码区,在弹出的菜单中选择“Go To Disassembly” 进入汇编代码模式:
(3)可以看到c的真实内存值哦~!
小弟献丑了~! ^ ^
热心网友 时间:2024-10-25 18:00
%x是显示补码的,-1补码32个1,就是ffffffff,要想显示ff应该是255热心网友 时间:2024-10-25 18:02
printf("%x\n",c); -- 转为long int 16进制输出。热心网友 时间:2024-10-25 18:04
因为%x是用来输出一个int类型的数据的。在你调用printf传递变量c的值的时候,系统会自动把c的值-1扩展成int类型的值-1,这也是C语言中的一个规定.热心网友 时间:2024-10-25 18:01
printf();函数只识别第一个参数,即格式字符串,对于后一个参数,如你不指定,则当作32位的int来处理.