c/c++的小知识

1. getchar和system(“pause”)

相同点:都可以实现“暂停”效果。但实际过程,有区别。

getchar()是从输入缓冲区中读取一个字符。如果输入缓冲区(使用scanf输入的任何数据都是先被保存在输入缓冲区中!)中没有任何数据,那么就暂停,直到用户输入任意数据并回车,程序才继续往下执行。使用getchar()时,如果输入缓冲区中还有数据,那么就不能实现暂停效果。

system(“pause”)则与输入缓冲区没有任何关系,会直接暂停程序的执行,直到用户按下任意一个按键(不需要在最后输入回车符),才会继续执行。system(“pause”)还会有自动输出提示信息:“请按任意键继续. . .”而且这个提示信息是固定的,不能修改。

2. printf和fprintf

printf 就是向屏幕打印信息

fprintf是向指定的文件打印信息。而一般的文件,都是保存在磁盘的,也就是硬盘。比如文件 C:/tmp/hello.c

printf其实是fprintf的一种特殊情况,就是把信息打印到一个特殊的文件(标准输出设备),而默认的标注输出设备就是屏幕(控制台的屏幕)

3. gets和fgets

gets是从键盘读取一行字符串。

fgets是从指定的文件读取一行字符串。

gets是fgets的一种特殊情况,就是向一个特殊的文件读取,这个特殊的文件就是标准输入设备,而默认的标准输入设备就是键盘。

4. void

作用1:作为函数的返回类型

函数的返回类型为void, 就表示这个函数没有返回值。

作用2:作为函数的参数

函数后面的()用来写参数,如果没有参数,建议写void, 告诉编译器,这个函数没有参数。如果不谢,编译器也会认为没有参数。但是可能会告警,因为编译器怕你忘记写参数了,如果写void, 就是明确告诉编译器,这个函数时没有参数的。

作用3:作为void*, 表示指向任意类型的指针

5. break和continue的作用

在while语句和for语句中,break的作用,就是直接结束结束循环,跳转到该循环语句之后的语句执行。在多重嵌套循环中,break只能跳出所在那一层循环。

在switch语句中,break的作用,就是直接结束switch语句,跳转到switch后面的语句执行。

continue语句,在while语句,for语句中都可以使用。
在while或for语句中,如果遇到continue语句,就直接结束本次循环,进入下一轮循环的判定语句。

特别注意的是,在for循环中,如果遇到了continue语句,还是会先执行for语句中第3个表达式,然后再判断第2个表达式。

发布了78 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/103711287