杂记4
来源:互联网 发布:luastudio for mac 编辑:程序博客网 时间:2024/06/18 00:15
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也不行。而局部变量只能在本函数中使用,出了这个函数,这个变量就自动的消失了,但是静态的局部变量的作用域是本函数中使用,但是它不会消失,直到下次程序进来这个变量还保留着原来的值,直到整个程序退出。
- 杂记4
- 杂记4
- 杂记4
- STL杂记(4)
- 杂记 Ver 0.0.4
- Android4.4webview杂记
- linux杂记4
- android学习杂记.4
- [java]杂记4
- 心情杂记-4-19
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- 杂记
- leetcode13. Roman to Integer
- 深度优先遍历/广度优先遍历(递归+非递归java实现)
- 【转】sql之left join、right join、inner join的区别
- jpush自定义推送声音
- 二叉树
- 杂记4
- 3、文件相关命令
- java.lang.NoSuchFieldError: VERSION_2_3_0 报错解决方案
- Linux command note
- 提高C#编程水平的50个要点 之三“在 as 和 强制类型转换之间,优先使用 as 操作符”。
- 1118. Birds in Forest (25) PAT 甲级
- 20位活跃在Github上的国内技术大牛
- 递归神经网络(RNN)
- mysql 主从复制