- C++有另一种C语言所没有的初始化变量的语法:
int n = 520; //C语言
int n(520); //C++允许这样初始化
- 赋值的时候注意细节,在声明的时候尽可能给他初始化是一个好习惯。
- 成员函数:成员函数归类所有,描述操纵数据的方法。如类ostream有一个put()成员函数,只能通过类的特定对象,如cout对象,来使用成员函数。要通过对象使用成员函数的话,必须用句点将对象名和函数名连接起来。句点称为成员运算符。如:cout.put()的意思是,通过类对象cout来使用函数put().
- bool类型:可以使用bool类型判断真假,非零为true,零为false
- C++有一种更好的处理常量的方法,使用const关键字来修改变量声明和初始化。创建常量的通用格式:
const type name = value
尤其注意:声明常量的时候一定要赋值,不然后期无法修改。C++中推荐用const来定义常量而不是#define - 注意:/运算符用于前面的数除以后面的数,只取结果的整数部分(两者都为整型时);%运算符用于前面的数除以后面的数,只取余数部分,且只有整形能用%运算符,若用于浮点数将导致编译错误。
- 注意优先级的问题
- 注意数组的有效下标,编译器不会检查下标是否有效。
- 初始化数组时,提供的值可以少于数组的元素数目,剩下的元素自动赋值为0。
- C++数组初始化可省略等号,大括号内可以不含任何东西,这将把所有元素设置为零。列表初始化禁止缩窄转换。
double a[10] {};
- C-风格字符串有一特殊性质:以空字符结尾,空字符被写作\0,用来标记字符串的结尾,也就是说,char数组只有以空字符结尾才算字符串。空字符的意义在于判断什么时候结束。比如说要打印数组中的字符时,遇到空字符才表示打印结束。
- 注意,单引号表示的是字符常量,双引号表示的是字符串。
- 用cin输入字符串的时候,cin使用空白(空格,制表符,换行符)来确定字符串的结束位置,这意味着只能读取一个单词。这里可以用面向行的输入:cin.getline(),它通过换行符确定结尾。
cin.getline(name,20);//第一个参数是用来存储输入行的数组名称,第二个是要读取的字符数
- 混合输入字符串和数字会出现问题:
int a;
cin>>a;//输入后回车键形成的换行符会被留在输入队列中
char b[100];
cin.getline(b,100);//由于前面的换行符,会认为输入终止形成空行。
解决之道是读取并丢弃换行符,可以用cin.get()
int a;
cin>>a;
char b[100];
cin.get();//读取并丢弃换行符
cin.getline(b,100);