《C++ Primer 第六版》第二章

来源:互联网 发布:爱另类软件 编辑:程序博客网 时间:2024/06/12 23:10

C++对大小写敏感

 

 

异教徒:

main()

void main()-适用于很多系统,不是当前标准强制的一个选项,因此有些系统上不能工作,应该避免这种格式,使用C++标准格式。

 

如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数以如下语句结尾:return 0;

 

存在一些例外的情况没有main():

         编写一个动态链接库(DLL)模块

         用于专用环境的程序-如机器人中的控制器芯片(可能不需要main())

         有些编程环境提供一个框架程序,该程序调用一些非标准函数,如_tmain()。在这种情况下,有一个隐藏的main(),他调用_tmain()。但常规的独立程序都需要main()

 

C++的正统注释//

C的正统注释/**/

 

C艹的预编译,实际上是将#指定的文件经过预编译后将文件的内容与程序的原始文件组合成一个复合文件,编译的下一阶段将使用该文件

 

C++的头文件名保留了部分带h的老式C头文件,部分去掉h并在前加上C如 cmath头文件

 

 

名称空间支持是一项C艹的特性,旨在编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易,它还有助于组织程序。

 

Fxxk::wanda(“go fxxking?”);

Shit::wanda(“a fish named desire”);

 

Using std::cout;  //make cout available

Using str::endl;        //make endl available

这种方法是一种更好的方法,只使所需的名称可用

Using namespace std;

是一种偷懒的做法,在大型项目中会是一个潜在的问题

 

还可以如此编码

Std::cout<<”Come up and C++ me some time.”;

Std::cout<<std::endl;

 

Cout是一个对象的实例,里面还有各种方法,以上打印的方法实际上是将字符串输入给了COUT对象,然后利用运算符<<(重载的概念)输入到输出流中,再经由对象cout输出到屏幕供我们阅读,endl是在头文件iostream中定义的,且位于名称控件std中,对于cout来说有特殊含义的特殊符号被称为控制符(manipulator)。

 

在C++中“\n”和endl的区别:”\n”继承自C语言,为普通的换行符。Endl确保程序继续运行前刷新输出(将其立即显示在屏幕上);而使用”\n”不能提供这样的保证,这意味着在有些系统中,有时可能在输入信息后才会出现提示。

 

1. 在c++中,终端输出换行时,用cout<<......<<endl 与 “\n”都可以,这是初级的认识。但二者有小小的区别,用endl时会刷新缓冲区,使得栈中的东西刷新一次,但用“\n”不会刷新,它只会换行,盏内数据没有变化。但一般情况,二者的这点区别是很小的,在大的程序中可能会用到。建议用endl来换行.
2.endl除了写'\n'进外,还调用flush函数,刷新缓冲区,把缓冲区里的数据写入文件或屏幕.考虑效率就用'\n'.
3. cout << endl;除了往输出流中插入一个'\n'还有刷新输出流的作用.
        cout << endl; 等价于: cout << '\n' << flush;
在没有必要刷新输出流的时候应尽量使用cout << '\n', 过多的endl是影响程序执行效率低下的因素之一.

 

一行代码中不可分割的元素叫做标记(token)通常,必须用空格、制表符或者回车将标记分开,空格、制表符和回车统称为空白

 

对于声明变量,C艹的做法是尽可能在首次使用变量前声明它

 

C艹和C有一项不寻常的特性-可以连续使用赋值运算符

 

Int Steinway;

Int Baldwin;

Int Yamaha;

Yamaha = Baldwin = Steinway = 99;

以上这段代码是合法的

 

 

函数原型和定义的区别

原型只描述函数接口,通常存在于头文件中

定义则包含函数的科编译代码,通常存在于库文件中

 

C艹不允许将函数定义嵌套在另一个函数定义中。每个函数定义都是独立的。所有函数的创建都是平等。

0 0