c++中文字类型和变量类型的区别
difference between literal types and variable types in c++
我正在通过cplusplus.com学习c++,并遇到了类似75u
的东西,它似乎描述了一个无符号常数。
让我感到困惑的是:当已经有规定声明75
将被赋值为unsigned的变量时,声明一个常量为unsigned的意义是什么?
简单说:
为什么在将一个数字赋值给(例如)一个unsigned int时要特别添加一个u
?
unsigned int i = 75;
和
unsigned int i = 75u;
这是因为=
左侧的变量类型(在赋值中)与如何计算表达式(右侧)没有关系。
这似乎使许多新程序员感到惊讶,但它仍然是正确的。
像这样:
const float two_thirds = 2 / 3; /* Bad code! */
not assign 0.6666667给two_thirds
;由于2
和3
都是int
字面值,因此使用整数数学对表达式求值。
:
const float two_thirds = 2.f / 3;
强制表达式为float
。类似的推理也适用于unsigned
的使用,因为它的取值范围比有符号变量大。
相关文章:
- 基本类型与内置类型有什么区别C++
- C++指针中的这两种类型的值分配有什么区别?
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- CRTP:为什么获得嵌套类型和派生类的嵌套方法有区别
- 类型测试对象的动态数组的这两个声明之间的区别?
- C++ 中的对象创建类型有什么区别?
- C++11中的自动类型扣除和类型转换有什么区别
- a、&a 和 &a[0] 之间的类型有什么区别?
- 将类类型成员定义为公共和私有之间有什么区别?
- 两种类型的定义构造函数有什么区别?第一个使用":",第二个用大括号(如函数)定义它
- 类型、value_type和element_type之间有什么区别,以及何时使用它们?
- 自动扣款和模板类型扣款有什么区别
- 抽象数据类型(ADT)和数据结构之间有什么区别
- C 中类型和类之间的区别
- 使用函数类型和函数指针作为C++模板函数参数的区别
- 整型非类型参数和非整型非类型参数的模板部分特化,g++和clang的区别
- VS c++和MinGW实现双重类型有什么区别
- 类型转换时C++ (void *) 变量和 (void *&) 变量有什么区别
- C++中的类型和名称有什么区别?