C++primer 第五版 *笔记一 [渣渣进化记]
来源:互联网 发布:运城学院网络管理系统 编辑:程序博客网 时间:2024/04/28 03:04
【第一章】
书店程序核心:
if 语句例子
#include <iostream>int main(){int currVal = 0, val = 0;if (std::cin >> currVal) { int cnt = 1;while (std::cin >> val) {if (val == currVal) ++cnt; else {std::cout << currVal << " occurs " << cnt << " times" << std::endl;currVal = val; cnt = 1; }} std::cout << currVal << " occurs " << cnt << " times" << std::endl;}return 0;}(书上的例子又有错…无语…此程序只能显示第一个出现的次数…还没想怎么改)
【第二章】
· 当知晓数值不可能为负时,选用无符号类型
[引用]:
定义引用时,把引用和初始值绑定在一起,不是把初始值拷贝给引用,无法让引用重新绑定到另一对象。引用只是为已经存在的对象起另一个名字。
·引用必须初始化!初始值也必须是对象,而不是具体的数值。
[指针]:
写法1:修饰符和变量标识符写在一起 int *p1, *p2;
写法2:修饰符和类型名写在一起,每条语句只定义一个变量。 int* p1; int* p2;
·新标准下最好用nullptr初始化指针
void* 指针——存放任意对象的地址,缺点是不知道是什么类型的指针,不能直接操作它所指向的对象。
·指向指针的引用
int i = 42; int *p; int *&r = p;//r为引用。从右往左,离变量名最近的符号
[const]:
默认状态下,const对象仅在文件内有效,所以想在多个文件之间共享const对象,必须在变量的定义前加 extern关键字
extern const int bufSize = fcn();
const的引用:允许为一个const引用绑定非常量的对象、字面值
int i = 42;const int &r1 = i;const int &r2 = 42;const int &r3 = r1 * 2;int &r4 = r1 * 2;// 错误,r4是非常量引用
const 的引用 对于引用对象本身是不是常量未作限定,所以对象可由其他途径被改变其值
int i = 42;int &r1 = i;const int &r2 = i;//不允许通过r2修改i的值r1 = 0;//i的值被修改为0r2 = 0;//错误,r2是常量引用
const引用 可以引用一个非const的对象
指向常量的指针 可以指向非常量对象
常量指针: *const 必须初始化,则其值(指针中的地址)不能再改变,不变的是指针的值 不是指向的那个值
顶层const:指针本身是个常量[总结:初始化const 、const指针 、constexpr指针 是顶层const]
const int ci = 42;//顶层constint i = 0;int *const p1 = &i;//顶层const
constexpr int *p3 = &ci;//顶层const
底层const:指针所指对象是个常量[总结:const的引用 、指向const的指针 是底层const]
const int *p2 = &ci;//底层constconst int &r = ci;//底层const
·用constexpr来声明一个常量表达式
·类型别名定义 typedef 新标准中使用 别名声明using
typedef char *pstring;const pstring cstr = 0;//指向char的常量指针
注: 不能将类型别名替换成原来样子理解
const char *cstr = 0;//声明了指向const char的指针
(auto decltype 略看了…)
·auto 类型说明符——让编译器替我们分析表达式所属的类型,auto定义的变量必须有初始值
·decltype 类型指示符——另一种类型说明符,选择并返回操作数的数据类型,不实际计算表达式的值
·预处理器中,头文件保护符依赖于预处理变量,预处理变量两种状态:已定义 未定义
#define 把一个名字设定为预处理变量
#ifdef 变量已定义为真
#ifndef 变量未定义为真。检查结果为真则执行后续操作直到遇见 #endif
有效的防治了重复包含的发生
- C++primer 第五版 *笔记一 [渣渣进化记]
- C++primer 第五版 *笔记二 [渣渣进化记]
- C++primer 第五版 *笔记三 [渣渣进化记]
- c++ Primer第五版 学习笔记(一)
- (c primer plus第五版) 学习笔记
- C++Primer(第五版)学习笔记
- 《C++primer》 第五版 第一章笔记
- C++primer第五版第一章学习笔记
- 《C++primer Plus6》第五章学习笔记(一)
- 《C++primer》第五版 第四章 第五章 笔记
- C++primer第五版第五章学习笔记
- c++primer 第五版
- C PRIMER PLUS(第五版)疑问总结一
- C Primer Plus(第五版)学习(一)
- (c primer plus第五版)学习笔记
- C++primer第五版【学习笔记】——第一章
- C++Primer第五版【笔记】——第六章 函数
- C++Primer第五版【笔记】——第七章 类
- 译文 日经春秋 20150122
- 漫谈数据挖掘从入门到进阶
- Android之ExpandableListView的属性(展开,闭合,箭头)
- uva 1586 - Molar mass
- java中的AES 256算法遇到 Illegal key size or default parameters错的解决办法
- C++primer 第五版 *笔记一 [渣渣进化记]
- 织梦DedeCMS-自定义图片代替软件等级星标的方法
- UVa 12110 Printer Queue(特殊队列)
- 值与它在内存地址中的高低位排列是反过来的
- Linux查看系统开机时间
- iscsiadm主要操作命令
- VS2008 AddIn for C++ code coverage 更新
- Android:使用canvas绘柱状统计图(自动计算宽高及分度值、可左右滑动)
- 导入android工程出现红色感叹号!