作者TKyo (暗黑贵公子)
看板Programming
标题Re: 请问c语言的int
时间Fri May 30 17:58:26 2008
※ 引述《[email protected] (大改名片档)》之铭言:
: 基本上
: 第一个结果是对的,因为这是int型态变数,c语言不会自动转换
: 可是问题在於第二个..为何会出现小数点?
基本上
第一个结果 (1.a) 也是错的, 被印出来的是堆叠空间的数值
多印个几次, 数值会相对变化
至於第二个结果 (2.a), 那是因为前面计算处理过
float b
加上有呼叫 printf(), 所以此值尚在堆叠中未被破坏, 因此才会印出 17.5
不然, 可以在印出 2.a 之前插入一行 printf("b=%f", b=0);
这时, 第二个结果 (2.a) 就会印出 0
这已经是老问题了 冏
--
看的懂 x86 组语的话, 使用 gcc 编译时可以加个参数 -S
产生反组译码 (AT&T 格式) 出来看就知道了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.86.136.1
1F:推 zha0::D 124.8.71.239 05/31 01:32