c++ 内置类型

c++基本数据类型有算数类型(arithmetic)和空类型(void)。其中算数类型包括bool,字符,整型,浮点。

算数类型大致可以分为两种,一种是整型(integral type。包括bool, 字符,整型);另一种是浮点数。


下面是c++内置数据类型

bool, char, wchar_t, char16_t, char32_t, short, int, long, long long, float, double, long double


符号修饰符

signed,unsigned

注意char、signed char、unsigned char是三种不同的类型,这点容易混淆。


基本类型转换

有符号无符号转换:位不变,数值可能会变。

不等位转换:位截断,数值可能会变。位扩展,数值不变。

不等位,有无符号间转换:先调整位数,再作符号转换。

整型、浮点型转换:


隐式转换规则:

为防止精度损失,类型总是被提升为较宽的类型。

所有含有小于整型类型的算术表达式在计算之前其类型都会被转换成整型。


c++类型转换详解见http://blog.csdn.net/u012085988/article/details/17584903

字面值常量:

如在程序中写了个3,那么这个3是什么类型呢?c++会按照一定的规则来处理字面值常量:

整型:书写格式有三种十进制,八进制,十六进制。默认情况下,十进制是带符号类型,八进制和十六进制可能带符号,也可能不带符号。十进制的字面值的类型是int,long,long long中的尺寸最小的。(例如3,则是int型,而不是char型;如果数太大,int装不下,则是long型...)。八进制和十六进制的字面值是int, unsigned int, long, unsigned long, long long, unsigned long long中的尺寸最小的。如果一个字面值连与之关联的最大类型都放不下,将产生错误。

尽管十进制字面值的类型是带符号的,但十进制的字面值不会是负数。因为字面值-42,前面的负号并不在字面值之内,它仅是对字面值42取负数而已。

浮点数:浮点数的字面值可以用小数表示,也可以用科学计数法表示。默认类型是double。

字面值还可以通过一些前缀和后缀来修饰其类型。

前缀含义类型
uunicode16char16_t
Uunicode32char32_t
L宽字符wchar_t
u8UTF-8char

后缀类型
u/U(整型)unsigned
l/L(整型)long
ll/LL(整形)long long
f/F(浮点)float
l/L(浮点)long double


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值