C++温故知新----0

来源:互联网 发布:勇士雷霆第五场数据 编辑:程序博客网 时间:2024/05/16 04:40

仅供本人学习,不具有参考性

存疑概念:
。不同机器数据类型的位数:

1、不同位数的机器上有差别的主要是指针的长度,因为可以寻址的空间有区别; 
2、int的长度则依赖于编译器。

http://blog.csdn.net/lonfee88/article/details/8036080
。C++编码:
提醒:
。auto只能用于单值初始化

。C++大括号只能初始化,不能窄缩转换
重要知识点:
第三章
3.4 C++算术运算符
3.4.4类型转换
。C++强制类型转换符
static_cast<typeName>:将一种数据类型转换为另一种,比传统方法更加严格

第四章
4.1 数组
。数组静态初始化,数值需使用常量或常量表达式
。sizeof()用于数组名,得到整个数组的字节数,用于数组元素,得到该元素类型的字节数
。数组初始化时可使用大括号,大括号是初始化手段

*对数组名取地址,解释为整个数组内存块的地址
4.2 字符串
4.2.3字符串的输入
。cin输入
使用空白确定字符串结束位置
无法控制字符串输入长度
。面向行输入:getline()
cin.getline(name,20)
以换行符作为字符串结束位置,丢弃换行符
可读入n-1个字符,如上例可读入19个字符到name字符串内
返回值为cin
。面向行输入:get()
cin.get(name,20); //读取字符串到name,返回cin
cin.get() //读取一个字符,返回读取字符
以换行符作为字符串结束位置,保留换行符
可读入n-1个字符,如上例可读入19个字符到name字符串内
返回值为cin
*get(demo,n)读取空行时,会设置失效位(failbit),接下来的输入将阻断,cin.clear()恢复
*输入字符数比指定多,把余下字符留在输入列中,getline()会设置失效位
4.3 string类简介
4.3.4string类I/O
。getline(cin,str)
string友元函数
4.4 结构简介(struct)
sizeof(结构体),计算总位数
4.5 共用体(union)
sizeof(共用体),计算最大成员位数
匿名共用体做结构体成员,可以直接把共用体属性当成结构体属性使用
4.6 枚举
创建符号常量的方式,可代替const
非枚举类不能赋值给枚举类
4.8 指针、数组和指针算数
4.8.5自动储存、静态储存、动态储存
函数内部定义的常规变量,使用自动储存空间,被称为自动变量(局部变量)
静态变量:在函数体外定义,或者,声明变量使用static,存在于程序整个生命周期
动态储存:new时生成,delete时销毁,不受代码块和程序结束的影响
4.10 数组的替代品
4.10.1 模板类vector
动态模板数组 vector<typeName> vt(n_elem),n_elem可以是常量或者变量
4.10.2 模板类array
vector类效率低于数组
array类使用静态栈空间,效率与数组相同
array<typeName,n_elem>,n_elem只能是常量

第五章 循环和关系表达式
5.1 for循环
5.1.11逗号运算符
把两条或更多语句放到按C++语法只能放到一条语句的地方,常用于for循环条件//for (int i,j;i < 10;i++,j--){}
确保在前的表达式计算完毕,再计算后一条,表达式返回最后一条的值//i = 20, j= 2 * i; j等于20,且整条语句返回40
逗号优先级最低
cate = 17,120; //解释为(cate = 17),240; cate = 14
cate = (17,120)//cate = 240;
5.4 基于范围的for循环
对数组或容器类每个元素执行相同操作
double demo[3] = {1,2,3};
for(double x:demo)
cout << x;
5.5 循环和文本输入
5.5.4文件尾条件
cin检测到EOF后,cin将(eofbit/failbit)设置为1
通过cin.eof()查看eofbit,返回true,检测到EOF,返回false,未检测到
cin.false()用法同上

2.常见的字符输入做法
while(cin.get(ch)){}//cin可在需要转换为bool类型时转换
5.5.5另一个cin.get()版本
while((ch = cin.get()) != EOF){}//到达EOF不会将任何值赋给char

第六章 分支语句和逻辑运算符
6.3字符函数库(ctype)
isalnum(),isalpha(),iscntrl()(如果是控制字符返回true),isdigit(),isgraph()(如果是初空格外的打印字符返回true)
islower(),tolower(),isupper(),toupper(),isprint()(如果是打印字符,包括空格,返回true),ispunct()(标点符号),isspace(标准空白字符)
6.8简单的文件输入/输出
头文件fstream,类:写入(ostream),读出(istream)

第七章 函数————C++的编程模块
7.3函数与数组
7.3.5指针和const
。让指针指向常量对象,防止指针修改所指向的值
不意味着必须指向常量,只是对指针来说是常量
尽量使用const
。避免无意间的修改
。可使用const和非const的值
。将指针本身声明为常量,防止改变指针指向的位置
7.4函数和二维数组
数组可以在实参传递列数,行数另传//int sum(int data[][4],int num);
7.5函数和C-风格字符串
7.5.1将C-风格字符串作为参数
。char数组
C-风格字符串与char数组差别:末尾有无'\0'
。用引号括起来的字符串常量
。被设置为字符串的地址的char指针
7.5.2返回C-风格字符串的函数
。返回字符串地址:常在函数内动态分配,其他函数delete
7.10函数地址
7.10.1函数地址基础
。获取函数地址
传递函数名,不加括号和参数
。声明函数指针
声明函数指针,需要指明函数特征和返回类型
原型:double test(int);
函数指针:double (*pf)(int);
赋值:pf = test;
。使用函数指针调用函数
使用:double x = pf(1);double y = (*pf)(1);





原创粉丝点击