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 关于下拉菜单选项关联的问题
    • ¥15 如何修改pca中的feature函数
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
    • ¥15 画两个图 python或R