2 shiguofu2012 shiguofu2012 于 2013.09.18 15:48 提问

关于变量初始化的问题

sample 1
char i = 1;
int64_t chunknum;
printf ("%zd\n", chunknum);
print_size_t(chunknum);

sample 2
//char i = 1;
int64_t chunknum;
printf ("%zd\n", chunknum);
print_size_t(chunknum);

其中print_size_t 函数功能是按位打印。
在sample 1中结果是
140735130976432
00001101000000101011111011001110 11111111111111100000000000000000
(从左到又是低位到高位)

sample 2的结果是
4195600
00001000101000000000001000000000 00000000000000000000000000000000

经过无数次的尝试。我发现声明并定义char i = 1 会让chunknum的高32位全为0。
这是什么原因呢?求大神解释

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!