一、基础知识
1.类是合并了数据和算法的一种数据类型。
2.未初始化的变量,在引用它的时候将发生错误(系统为它分配了一个随机值,这个值跟系统以及内存的上次引用值有关)。
3.初始化的两种方法:①int i=值;②int i(值);
4.显示小数点位数:
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.preciison(2);//括号里填写要显示的位数
5.自顶向下设计(也成为逐步求精或分而治之);
6.pow函数时钟返回double类型的值,而不是int类型
7.强制数据类型转换
static_cast<double>(int变量或值) //示例将int数据类型转换成double型,这是一个比较新的方法
double(int变量或者值) //这是一个比较古老的方法,建议使用新的方法,因为古老的方法以后或许编译器不支持
二、函数
1.在函数中,执行return语句后,函数调用终止。所以在void类型的函数中也可以使用return 来终止调用。
2.重载函数名称:定义函数名相同的函数。如
double avg_num(double i ,double j)
double avg_num(double i,double j ,double k)
任何两个同名的函数必须使用不同数量的形参,或者使用不同类型的形参。
3.调用函数的机制:①传值调用机制。②传引用调用机制。
4.驱动程序是专门用来测试一个函数的程序。
5.exit(1),exit(0):在unix系列和windows系列操作系统中,1表示错误,0表示成功。(这只是一个规范)
三、I/O流
1.要讲输入追加到test.txt文件中,可使用带有两个参数的open
ofstream out_sream;
out_stream.open("test.txt");
如果test文件不存在,将创建一个test.txt,如果已存在,则往其中追加内容。
2.cin>>与cin.get()读取字符的区别:cin>>是经过处理自动转换的,它会忽略空白字符,回车。但是使用cin.get()一切都不会自动发生变化,空格和换行字符等都会存储。
3.子函数中调用参数为ifstream,ofstream 等类型参数时,要去它的地址:read_file(ifstream &in_stream).
4. isalpha(字符) //判断字符是否为英文字母
isdigit(字符) //判断字符是否为数字
isspace(字符) //判断字符是否为空格
5.在函数声明中就已经用到输入输出流时,需要在include后即加上using集
6.函数中的默认实参:如果函数中有默认实参,必须统一放在参数列表的末尾。
如:void fun(int i,int j=1,int k=2);
四、字符串
1.字符串数组的结束标志:'\0';
2.长度为n的字符串最多能由(n-1)个字符构成,还有一个用于存放'\0';
3.以下字符串赋值是非法的:
char c[10];
c="hello';//非法
它与下面的语句是不相同的:char c[10]="hello"; 这个是一个对字符串进行初始化的操作,而不是赋值。
对字符串赋值的方法有:strcpy(c,"hello")等方法;
4.从键盘输入的字符赋值给string类型字符串,方法如下:
string s;
getline(cin,s);
如果使用的是cin>>s,将只获取第一个连续的字符串,比如输入”hello world“,将只有hello输入到s中;
五、指针和数组
1.向量(vector)的长度是指向量中元素的个数,向量的容量是指当前实际分配了内存的元素的个数
2.指针是一种结构,它允许我们队计算机内存进行更大的控制。
3.不能对指针进行标准的算术运算(虽然能为指针执行一种加法和减法运算,但他们并不是普通的整数加法和减法);
4.C++的标准规定,若没有足够的内存来创建新的变量,new 操作符默认会终止程序,除非有捕捉这个异常并处理的程序事件。