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 · 349 阅读 · 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 · 167 阅读 · 0 评论 -
指针
指针与引用类似,实现了对其他对象的间接访问。 指针和引用区别:指针本身就是对象,允许对指针赋值和拷贝,在生命周期内可以先后指向不同的对象;指针不需要在定义时赋初值。 引用不是对象,没有实际地址,不能定义指向引用的指针。 给指针赋值就是令它存一个新的地址,从而指向新的对象;而引用定义后无法再绑定到另外的对象。 指向指针的引用 int a = 12; int *pa = &a; ...原创 2019-04-14 09:38:04 · 234 阅读 · 0 评论 -
引用
引用分为左值引用与右值引用。 引用为对象另起一个名字,必须初始化。 定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定。无法令引用重新绑定到另外一个对象,引用必须初始化。 引用本身不是对象,所以不能定义引用的引用。 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。 常量引用(const),允许绑定非...原创 2019-04-14 09:10:47 · 198 阅读 · 0 评论 -
初始化方式及默认初始化
初始化方式 以下初始化方式均可。 其中,用花括号初始化的形式为列表初始化,当初始值存在丢失信息风险时,编译器会报错。 默认初始化 定义变量时没有指定初值,将被默认初始化。 定义于任何函数体之外的变量被初始化为0。 函数体内部的内置类型变量不被初始化,值是未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。 类的对象初始化由类定义。 类内初始化不能使用圆括号,或放...原创 2019-04-10 09:35:11 · 539 阅读 · 0 评论 -
unsigned 和int相加
unsigned数和int数相加,int数会转换成无符号数。 测试时,需要考虑相加后结果溢出导致结果和正常逻辑一致的情况。原创 2019-04-10 09:09:57 · 714 阅读 · 0 评论 -
C++操作符替代名
and a and b; a && b; and_eq a and_eq b; a &= b; bitand a bitand b; a & b; bitor a bitor b; a | b; compl compl a; ~a; not not a; !a; not_eq a not_eq b; a != b; or ...原创 2019-04-10 13:09:40 · 934 阅读 · 0 评论 -
decltype
选择并返回操作数的数据类型。编译器分析表达式并得到它的类型,却不实际计算表达式的值。 当调用的是函数时,编译器并不实际调用函数,而是使用当调用发生时函数的返回值类型作为定义参数的类型。 decltype使用的表达式是一个变量,则返回该变量的类型(包括顶层const和引用)。 如果使用的的表达式不是变量,则返回表达式结果对应的类型, 表达式的内容是解引用操作,得到的是引用类型。 int ...原创 2019-04-18 18:02:10 · 5968 阅读 · 0 评论
分享