首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为啥输出时c=16,d=0

2013-03-04 
为什么输出时c16,d0?初学者,见谅#includestdio.hint main(){ long i10,j9 int a6,b7 printf(c

为什么输出时c=16,d=0?
初学者,见谅
#include<stdio.h>
int main()
{
 long i=10,j=9;
 int a=6,b=7;
 printf("c=i+a=%d d=j+b=%d",i+a,j+b);
 return 0;
} c 输出结果 类型
[解决办法]
不好意思,上面把大小端弄反了!

Turbo C++, 是16位的吧,这个就容易解释了, 由于int是16位,long是32位
看看栈的情况就知道了!


printf("c=i+a=%d d=j+b=%d",i+a,j+b);

          
[解决办法]
------
[解决办法]
-----栈顶
c(int )---
[解决办法]
0x0010
[解决办法]
--
          
[解决办法]
------
[解决办法]
 
[解决办法]
-- i + a = 16 (long)
d(int )---
[解决办法]
0x0000
[解决办法]
--
          
[解决办法]
------
[解决办法]

          
[解决办法]
0x0010
[解决办法]
--
          
[解决办法]
------
[解决办法]
 
[解决办法]
-- j + b = 16 (long)
          
[解决办法]
0x0000
[解决办法]
--
          
[解决办法]
------
[解决办法]


printf("c=i+a=%ld d=j+b=%ld",i+a,j+b);

          
[解决办法]
------
[解决办法]
-----栈顶
        --
[解决办法]
0x0010
[解决办法]
--
c(long)-
------解决方案--------------------


 
[解决办法]
------
[解决办法]
 
[解决办法]
-- i + a = 16 (long)
        --
[解决办法]
0x0000
[解决办法]
--
          
[解决办法]
------
[解决办法]

        --
[解决办法]
0x0010
[解决办法]
--
d(long)-
[解决办法]
 
[解决办法]
------
[解决办法]
 
[解决办法]
-- j + b = 16 (long)
        --
[解决办法]
0x0000
[解决办法]
--
          
[解决办法]
------
[解决办法]

热点排行