C++关键字(上)

本文介绍了C++的关键字,包括新增的bool、char、wchar_t、char_8等类型,引用的概念及其在函数传参中的应用,以及枚举、内联、空指针nullptr等特性。详细讨论了引用的本质、枚举的运算、编译器版本指定、内联函数和空指针的区别。此外,还涉及了断言assert和静态断言static_assert在错误检测中的作用。
摘要由CSDN通过智能技术生成

c++的关键字相较于c的关键字的变化,分为新增关键字、新增语义、语义变化、无变化四大类,无变化的我们不提,只看前三部分。

bool

        bool类型也叫逻辑类型,是个两值enum,结果为true和false(这两个也是c++的关键字),我们在c程序中也见过bool,实际上c中并没有bool这个关键字,是编程的人自己使用typedef int bool来重命名的,而在c++中原生就支持了该类型,一般占1个字节(与平台有关),用法与c中自定义的相同,因为编译器本来就认识bool,所以在c++中函数重载时,会认为bool是一个不同的类型。

char

        字符类型,一般占用1字节(c和c++并没明确占用1字节),表示字符(ASCI或unicode字符);从c++14开始,char的符号类型取决于平台,如ARM平台是unsigned char,在x64使用的signed char。因为不确定,所以如果我们的程序中对符号有特殊要求,建议指定unsigned和signed。char类型的变量存储的数字在使用cout输出时,会把数字替换成对应的ASCI码输出,而int输出的才是数字。无论什么平台,基本上类型占用的字节满足以下规律。

1byte == char <= short  <=  int  <= long <= long long;

wchar_t

        宽字符类型,用于应对超出一个字节的字符的unicode,如汉字。使用和char高度相似,wchar_t具体占用几个字节与平台有关,可能是int也可能是unsigned short,wchar的变量不能使用cin和cout,要使用专用的wcin和wcout,对应的字符串也有一个wstring。

char_8

        char占几个字节,语言本身是没有规定,主要是由编译器决定的,为了规避这个问题,c++使用char8_t、char16_t、char32_t来进行补充规定。且他们都是无符号类型,stm32单片机中使用的u8其实就是 char8_t。对应的字符串类也就是u8string、u16string、u32string

运算符代用and

        在c中的逻辑与或非,在c++中还是可以使用,且大部分程序员也都习惯用逻辑符号,在c++中为了降低学习难度,还为其设计了等效的关键字,如and(&&)、or(||)、not(!)等,作为一个有c功底的工程师,其实没太大的意义,所以我们不去展开讲

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值