C/C++ sizeof是一个关键字,不是函数(其后有时可不加括号作为分隔符) |
您所在的位置:网站首页 › if后面一定要加括号吗 › C/C++ sizeof是一个关键字,不是函数(其后有时可不加括号作为分隔符) |
sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小。 sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。 所以在使用sizeof关键字的时候,可以不用加(),比如: ubuntu上编译运行: (test.c) #include #include #include int main() { printf("%d\n", sizeof(int)); //4 printf("%d\n", sizeof "123456"); //7 printf("%d\n", sizeof"123456"); //7 }我还以为int不用加括号也行呢,结果编译不过。。。 参考文章1:C++ sizeof 运算符 参考文章2:sizeof错误的认识(sizeof是关键字为什么可以加括号) 20220524 为什么 sizeof int 不加括号编译不过因为不加括号在某些情况下会造成二义性,比如下面这个例子: sizeof int * + 1他指的是 (sizeof (int*)) + 1 还是 (sizeof(int)) * (+1) 呢? 所以为了避免这种潜在的二义性,C语言规定如果一个数据类型名(例如:int)出现在一个表达式中就需要加上括号。 sizeof(int)是对的,而sizeof int会报错。 参考文章1:https://bbs.csdn.net/topics/603016930 参考文章2:Why sizeof int is wrong, while sizeof(int) is right? |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |