0. switch
switch()这个括号里面的数据必须是整型值
1. goto 语句使用形式
flag:....
......;
......
goto flag;
这里需要注意的一点是,goto语句只能放在本函数内使用,不能跳转到其他的函数中去。
2. EOF
文件结束标志,请看下面的一小段代码
#include<stdio.h>
#include<windows.h>
int main()
{
char ch = 0;
while ((ch = getchar()) != EOF)
putchar(ch);
system("pause");
return 0;
}
这段代码的作用是,每次输入一个字符,打印一个字符,输入一段字符打印一段字符,直到输入EOF时程序结束,这里的EOF是通过键盘的Ctrl+Z结束的
这里注意的一个点就是使用getchar(ch),来获取一个字符的时候,这里的ch尽量定义成int类型的。
3. fflush
getchar函数会从缓冲区中读取信息,但是我们有时候是不需要缓冲区中剩余的信息的,比如我们在上次输入完成后,输入一个字符之后,需要按一个回车,这时前一个字符被拿走,但是缓冲区中还有回车这个字符,在下次输入的时候很容易就出现错误,为了防止这个问题我们可以使用fflush()这个函数,用来清空缓冲区。这里使用fflush时使用fflush(stdin),表示刷新输入设备,fflush(stdout),表示刷新输出设备
4. C++闪退
直接在代码return 0;语句之前加上system("pause");不需要引头文件#include<windows.h>
5.类实例化对象内存问题
在C++ 中用类实例化一个对象之后,这个对象开辟的存储空间的方式也是按照C语言中结构体的方式进行的,如果类中或者结构体中没有定义任何变量,则这个空间的大小是1
6.类体外定义类的成员函数
在类体外定义类的成员函数时注意,比如我这里有一个Complex类,这里在类体内声明了一个void show();函数,然后我在类体外实现的时候需要使用void complex::show(){.....},这里需要强调的一点就是,在类体外定义函数的时候需要把类的返回值类型放在前面。容易出错的一个点就是,如果我们的返回值类型就是一个类的对象,比如类体内声明了一个函数,Complex Setdata();,然后我在类体外实现的时候需要使用下面的方式Complex Complex::Setdata(){......},第一个Complex是函数的返回值类型,第二个Complex是声明类域。
7.不能重载的运算符
C++中不能重载的运算符有.*/sizeof/?:/::/. 这五个运算符不能重载
8. 在c++代码中使用new与delete和new[]与delete[]的时候要成对的出现
9. 全局变量和静态变量
全局变量是定义在任何函数之外的变量,它的作用是全局的,直到函数结束后消失,另外它的链接属性是可以被其他的源文件使用,只需要在其他的源文件中使用extern ..之后其他的源文件就可以使用它了。如果是静态全局变量,它的链接属性就改变了,它只能被本源文件使用,而不能被其他的源文件使用,即使使用extern也不行。而局部变量只能在本函数中使用,出了这个函数,这个变量就自动的消失了,但是静态的局部变量的作用域是本函数中使用,但是它不会消失,直到下次程序进来这个变量还保留着原来的值,直到整个程序退出。