第三章 数据处理
1.一个典型的整型溢出行为
2.
第四章 复合类型
1. c风格字符串
char dog[3] = {'b','e','c'}; //不是字符串
char dog[3]={'a','b','\0'};//是c风格字符串
若用" ",则字符串隐式调用\0
char fils[11]="dog";
char fils[]="buddles";
将数组初始化为字符串,多出来的数组空位将会被设置为\0
比如, char boss[8] = "Bozo";
内存中为 B o z o \0 \0 \0 \0 八个数组位都被初始化完全.
使用cstring.h提供的string类型将避免许多上述不便
2.指针
(1).指针高效而危险,在指针使用*引用运算符之前,应当将指针初始化为一个确定的合适的地址.
(2).new与delete
规则:
1.不要使用delete释放不是new分配的内存
2.不要使用delete释放同一个内存两次
3.如果用new[]为数组分配内存,(int *psome = new int[10];)则应该使用delete [] 释放.
4.对空指针使用delete是安全的.
3.数组
数组与指针最大的不同在于数组不能自加运算.
4.自动存储 静态存储 动态存储
(1).自动存储
在函数内部定义的常规变量使用自动存储空间,在所属的函数被调用时产生,函数结束时消亡.自动存储通常在栈中
(2).静态存储
静态存储是整个程序执行过程都存在的存储方式,两种方式使用,在函数外边定义.或者,使用static关键字.
(3).动态存储
使用new和delete管理一个内存池,在C++中称作自由存储空间或者堆. new和delete使得程序员有了更大的权限,但是亦导致了占用的自由存储区内存不连续.这使得跟踪新分配内存的位置更加困难.
第五章 循环和关系表达式
1.多条件for循环
for(int j=0,i=10;j<i;--i,++j){} 利用逗号达到多条件的目的
2.字符串输入的的分界处理:getline(cin,string,':'); 最后一个参数为 分界符 一定要注意