【C++基础】知识点

C++没有明确规定每种数据类型的字节数,只规定了它们之间的关系,比如

short <= int <= long <= long long

实型常量默认为double类型,如果要定义浮点型,可以使用f(F)

auto i = 17.2;   // i为double类型

auto j = 20.1f;  // j 为float类型

char实际类型为signed char还是unsigned char由编译器决定,所以一般在使用char时要明确指定是否有符号,而且一般不要使用char进行算数运算,避免不同编译器上的差异。

明确数值不能为负数时,优选使用无符号数来表示。对于浮点数优选使用double类型,第一个精度高,第二个很多平台上double型比float型计算还快。

变量声明(declaration)是将变量名标志符、类型信息告诉编译器,不一定会引起内存的分配。变量的定义(definition)意味着给变量分配内存空间。一般除了外部变量(extern)以外,变量定义与声明等同。 变量只能被定义一次,但是可以被声明多次。

不要将有符号数和无符号数混合使用,如果有符号与无符号混合使用,则在计算前,系统会自动将有符号数转换为无符号数,然后进行运算,结果会不符合预期。

Int i = 1, j = -1;   i * j = -1; // 结果正确

Int i = -1; unsigned j = 1; i * j = -1; // 结果错误,运算前会将j转换为无符号数(2^n - 1)

默认情况下,十进制字面值是带符号数,为int、long、long long中尺寸最小的那个。八进制和十六进制字面值既可能是带符号的也可能是无符号的,为int、unsigned int、long、unsigned long、long long、unsigned long long中尺寸最小者。

列表初始化用于内置类型变量时,如果存在丢失信息的风险,编译器将告警或报错

double i = 10.2; int a {i};  // 编译会告警,用i初始化变量a,会丢失精度。

double i = 10.2; int a = i;  // 正常编译,编译器会进行默认转换,并丢失精度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值