C++之路 Day2

C++类型

      首先明确一个概念,什么是类型?我们知道程序可以说是由两部分组成:数据结构+算法。通过学习数学,我们知道形容一个东西的存在是形式时,我们可以用个,块,桶,串等词来描述,在买卖过程中,使用货币时,我们有元角分单位。在描述这些东西存在的数量时,我们就用到了数字,不同国家的语言在描述数量时的手法不一样。所以为了能将这些杂七杂八的东西给存入计算机,计算机对数据的存储进行了分类,并统一了类型标准。

         基本数据类型

bool存储值 true / false
char通常存储一个 八位 字符 
int 
float单精度浮点值。单精度是这样的格式,二进制从左往右:1位符号,8位指数,23位小数。
double双精度浮点值。双精度是1位符号,11位指数,52位小数。
void表示类型的缺失
wchar_t宽字符类型,char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。

wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型

  

 

            修饰符

      在基本数据类型的情形下,还有一个修饰符的概念,可以理解为加上修饰符改变数据类型的范围。

修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型。修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀。例如:unsigned long int。C++ 允许使用速记符号来声明无符号短整数无符号长整数。您可以不写 int,只写单词 unsigned、short 或 unsigned、long,int 是隐含的。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。使用 static 修饰局部变量可以在 函数调用之间  保持局部变量的值,static 修饰符也可以应用于全局变量,当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内,在 C++ 中,当 static 用在 类数据成员 上时,会导致仅有一个该成员的副本被类的所有对象共享。

            限定符

限定符
constconst 类型的对象在程序执行期间不能被修改改变
volatile修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率
restrictrestrict的定义是:It can be applied only to pointers, and it indicates that a pointer is the sole initial means of accessing a data object。表示指针指向的内存不能被别的指针引用。告诉编译器被restrict修饰的指针所指 向的对象,只能通过这个指针或基于这个指针的其他指针进行操作,这对编译器的优化很有好处。

C++关键字

关键字表
alignas(C++11起delete(C++11中改变)register(C++17中改变)
alignof (C++11起)doreinterpret_cast
anddoublerequires (C++20 起)
and_eqdynamic_castreturn
asmelseshort
atomic_cancel (TM TS)enumsigned
atomic_commit (TM TS)explicitsizeof(C++11中改变)
atomic_noexcept (TM TS)export(C++11改变)(C++20改变)static
auto(C++11中改变)extern(C++11中改变)static_assert (C++11 起)
bitandfalsestatic_cast
bitorfloatstruct(C++11中改变)
boolforswitch
breakfriendsynchronized (TM TS)
casegototemplate
catchifthis
charinline(C++11中改变)thread_local (C++11 起)
char8_t (C++20 起)intthrow
char16_t (C++11 起)longtrue
char32_t (C++11 起)mutable(C++11中改变)try
class(C++11 起)namespacetypedef
complnewtypeid
concept (C++20 起)noexcept (C++11 起)typename
constnotunion
consteval (C++20 起)not_equnsigned
constexpr (C++11 起)nullptr (C++11 起)using(C++11中改变)
const_castoperatorvirtual
continueorvoid
co_await (C++20 起)or_eqvolatile
co_return (C++20 起)privatewchar_t
co_yield (C++20 起)protectedwhile
decltype (C++11 起)publicxor
default(C++11中改变)reflexpr (反射 TS)xor_eq

      每个关键词详细解释请转移至:https://zh.cppreference.com/w/cpp/keyword 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值