![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Primer
深圳菊厂小戴
这个作者很懒,什么都没留下…
展开
-
类型别名
两种定义类型别名的方法:typedef和using。typedef int mint;using nint = int;有类型别名时,解释变量类型需小心。直接类型别名替换会导致错误。typedef int *mint; // mint是 int*的别名int a = 1;const mint pa = &a;const int *pb = &a; ...原创 2019-04-18 17:18:59 · 291 阅读 · 0 评论 -
指针和const
const int a = 0;const int *pa = &a; // 指向常量的指针,不能通过pa改变a的值int b = 0;const int *pb = &b; // b不是常量,但是不能通过pb来修改b的值int c = 0;int * const pc = &c; // 常量指针,pc是一个常量,不能...原创 2019-04-18 16:28:10 · 112 阅读 · 0 评论 -
指针
指针与引用类似,实现了对其他对象的间接访问。指针和引用区别:指针本身就是对象,允许对指针赋值和拷贝,在生命周期内可以先后指向不同的对象;指针不需要在定义时赋初值。引用不是对象,没有实际地址,不能定义指向引用的指针。给指针赋值就是令它存一个新的地址,从而指向新的对象;而引用定义后无法再绑定到另外的对象。指向指针的引用int a = 12;int *pa = &a; ...原创 2019-04-14 09:38:04 · 170 阅读 · 0 评论 -
引用
引用分为左值引用与右值引用。引用为对象另起一个名字,必须初始化。定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定。无法令引用重新绑定到另外一个对象,引用必须初始化。引用本身不是对象,所以不能定义引用的引用。引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。常量引用(const),允许绑定非...原创 2019-04-14 09:10:47 · 129 阅读 · 0 评论 -
初始化方式及默认初始化
初始化方式以下初始化方式均可。其中,用花括号初始化的形式为列表初始化,当初始值存在丢失信息风险时,编译器会报错。默认初始化定义变量时没有指定初值,将被默认初始化。定义于任何函数体之外的变量被初始化为0。函数体内部的内置类型变量不被初始化,值是未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。类的对象初始化由类定义。类内初始化不能使用圆括号,或放...原创 2019-04-10 09:35:11 · 458 阅读 · 0 评论 -
unsigned 和int相加
unsigned数和int数相加,int数会转换成无符号数。测试时,需要考虑相加后结果溢出导致结果和正常逻辑一致的情况。原创 2019-04-10 09:09:57 · 639 阅读 · 0 评论 -
C++操作符替代名
anda and b;a && b;and_eqa and_eq b;a &= b;bitanda bitand b;a & b;bitora bitor b;a | b;complcompl a;~a;notnot a;!a;not_eqa not_eq b;a != b;or...原创 2019-04-10 13:09:40 · 849 阅读 · 0 评论 -
decltype
选择并返回操作数的数据类型。编译器分析表达式并得到它的类型,却不实际计算表达式的值。当调用的是函数时,编译器并不实际调用函数,而是使用当调用发生时函数的返回值类型作为定义参数的类型。decltype使用的表达式是一个变量,则返回该变量的类型(包括顶层const和引用)。如果使用的的表达式不是变量,则返回表达式结果对应的类型,表达式的内容是解引用操作,得到的是引用类型。int ...原创 2019-04-18 18:02:10 · 5829 阅读 · 0 评论