C++复习笔记——0_零碎问题及解决笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wcy23580/article/details/84067425

1. 怎么理解int main(int argc, const char *argv[])?

https://blog.csdn.net/yang_chengfeng/article/details/49406443https://blog.csdn.net/yang_chengfeng/article/details/49406443

2. \nendl 的区别是什么?

\n表示内容为一个回车符的字符串。std::endl是流操作子,输出的作用和输出 \n 类似,但可能略有区别。
std::endl 输出一个换行符,并立即刷新缓冲区。
例如:

std::cout << std::endl;

相当于:

std::cout << '\n' << std::flush;
// 或者
std::cout << '\n'; std::fflush(stdout);

对于有输出缓冲的流(例如coutclog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。不过对于 cout 来说(相对于文件输出流等),缓冲一般体现得并不明显。但是必要情况下使用 endl 代替 \n 一般是个好习惯。

对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用 \n

3. .cpp 以及 .h 文件的作用?

.h 中存放类的声明,函数原型(放在类的声明中)。
.cpp 存放函数体。
也就是说,一个存放声明(declaration),一个存放定义(definition)。
如果我们在一个头文件里声明了一个函数,当我们需要定义这个函数(这个定义是唯一的,也就是只能定义一次),或者需要使用这个函数时,我们在 .cpp 中需要 include 这个头文件。
同样地,如果我们在一个头文件里声明了一个类,当我们需要定义类里的成员函数,或者我们需要使用这个类时,我们在 .cpp 中需要 include 这个头文件。
对于类的设计者来说,头文件就像他们和类的使用者的一个合同,编译器会强化这一合同,它会要求你在使用这些类里的函数或结构时必须要声明。

4. include 中的<>以及" " 区别?

<> 先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.hstdlib.h 等用这个方法。
" " 首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于 include 自定义的头文件,让系统优先使用当前目录中定义的。

5. "\n" 以及 '\n'区别?

"\n" 表示一个字符串,只有一个数据是回车符。
'\n' 表示一个字符。
这两个在输出上是一样的。

6. 是否使用using namespace std;?

真正的开发过程中, 尽量避免使用 using namespace std;等直接引入整个命名空间,否则会因为命名空间污染导致很多不必要的问题, 比如自己写的某个函数,名称正好和 std 中的一样, 编译器会不知道使用哪一个, 引起编译报错, 建议使用:

std::cout << "Hello World" << std::endl;

等直接由命名空间组合起来的全称。

7. C++如何输入包含空格的字符串?

对于C++字符串的输入我们看一下下面这段代码:

string s;      //定义空字符串
cin >> s;    //输入字符串
cout << s;   //打印

但我们会发现如果我们输入了还有空格的字符串,s里读入的字符串遇到空格回车tab都会结束,比如我们输入123 888,但实际输入到s里的只是123。可以使用getline(cin, s)或者字符串拼接函数当然也可以使用字符串拼接函数。
如下:

string inputStr;
getline(cin, inputStr);
cout << inputStr;

8. C++中引用(&)的用法和应用实例

https://blog.csdn.net/love_gaohz/article/details/7517891

9. 在 C++ 中 main 函数前面为什么要加上数据类型,比如: int void ?

main 函数的返回值是返回给主调进程,使主调进程得知被调用程序的运行结果。

标准规范中规定 main 函数的返回值为 int,一般约定返回 0 值时代表程序运行无错误,其它值均为错误号,但该约定并非强制。

如果程序的运行结果不需要返回给主调进程,或程序开发人员确认该状态并不重要,比如所有出错信息均在程序中有明确提示的情况下,可以不写 main 函数的返回值。在一些检查不是很严格的编译器中,比如 VC, VS 等,void 类型的 main 是允许的。不过在一些检查严格的编译器下,比如 g++, 则要求 main 函数的返回值必须为int 型。
所以在编程时,区分程序运行结果并以 int 型返回,是一个良好的编程习惯。

10. C 语言 int main() 和 int main(void) 的区别?

int main(void)指的是此函数的参数为空,不能传入参数,如果你传入参数,就会出错。

int main()表示可以传入参数。

// 这样是正确的
int main()
{
  if (0) main(42);
}

// 这样会出错
int main(void)
{
  if (0) main(42);
}

在 C++ 中int main()int main(void) 是等效的,但在 C 中让括号空着代表编译器对是否接受参数保持沉默。在 C 语言中main()省略返回类型也就相当说明返回类型为 int 型,不过这种用法在 C++ 中逐渐被淘汰。虽然 void main()在很多系统都适用,但他毕竟不是标准的,所以应该避免这种用法, 应该使用这种int main(void) 的写法比较妥当。

猜你喜欢

转载自blog.csdn.net/wcy23580/article/details/84067425