shiguofu2012 2013-09-18 07:48
浏览 806

关于变量初始化的问题

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。
这是什么原因呢?求大神解释

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 用三极管设计一个单管共射放大电路
    • ¥20 fluent无法启动
    • ¥15 孟德尔随机化r语言运行问题
    • ¥15 pyinstaller编译的时候出现No module named 'imp'
    • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
    • ¥15 怎么把多于硬盘空间放到根目录下
    • ¥15 Matlab问题解答有两个问题
    • ¥15 LCD12864中文显示
    • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
    • ¥15 gsoap生成onvif框架