【C语言】每日一题---1

大家好,我是苏貝,本篇博客是系列博客每日一题的第一篇,本系列的题都不会太难,如果大家对这种系列的博客感兴趣的话,可以给我一个赞👍吗,感谢❤️


下面代码的结果是:

c 复制代码
#include <stdio.h>
int i;
int main()
{
    i--;
    if (i > sizeof(i))
    {
        printf(">\n");
    }
    else
    {
        printf("<\n");
    }
    return 0; 
}

A.>

B.<

C.不输出

D.程序有问题

答案:A

解析:全局变量,没有给初始值时,编译其会默认将其初始化为0。所以 i- -后 i = -1,是不是马上认为-1<sizeof(int)=4,所以选择了B?但是sizeof的返回类型是size_t,是无符号整数。因此编译器会自动将左侧i转换为无符号整形的数据,当-1 被解析为有符号数时,高位置为1,表示这个数是负数。当它被解析为无符号数时,高位的1 被当做2 的乘幂,所以仅这一位置,就有2^31,远远大于4,所以这道题的答案选A。这道题其实很隐蔽,真是虾仁猪心!!!


好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

相关推荐
代码or搬砖10 分钟前
Collections和Arrays
java·开发语言
吴名氏.21 分钟前
电子书《Java程序设计与应用开发(第3版)》
java·开发语言·java程序设计与应用开发
于慨33 分钟前
dayjs处理时区问题、前端时区问题
开发语言·前端·javascript
listhi52043 分钟前
基于MATLAB的LTE系统仿真实现
开发语言·matlab
ss2731 小时前
ScheduledThreadPoolExecutor异常处理
java·开发语言
ejjdhdjdjdjdjjsl1 小时前
Winform初步认识
开发语言·javascript·ecmascript
六毛的毛1 小时前
比较含退格的字符串
开发语言·python·leetcode
xingzhemengyou11 小时前
Python GUI之tkinter-基础控件
开发语言·python
挖矿大亨1 小时前
C++中深拷贝与浅拷贝的原理
开发语言·c++·算法
崇山峻岭之间1 小时前
Matlab学习记录16
开发语言·学习·matlab