1、简单c++程序构成
// This is an example writen by wang
#include <iostream>
int main()
{
using namespace std;
cout << " it's a simple example.";
cout << endl;
cout << " you all can learn it relaxingly." << endl;
return 0;
}
- 注释,由前缀 //表示
- 预处理器编译指令: #include
- 文件头:iostream, 不同的程序需要不同的文件头
- 函数头: int main()
- 编译指令 using namespace
- 函数体 用{}括器
- 使用 c++ 的 cout 工具输出
- 结束 main() 函数的 return 语句
本文详细说明 c++ 预处理器、名称空间、输出方式和 c++ 语言风格。
2、c++预处理器和头文件
语句:#include <iostream>
,c++ 使用预处理器,在该程序进行主编译之前对源文件进行处理。这条语句代表的含义为:预处理器将 iostream 文件中的内容添加到程序中(一般预处理器操作为:在源代码被编译之前,替换或添加文本)。
iostream 中的 io 指的是输入和输出。c++ 的输入/输出方案设计 iostream 文件的多个定义,为了能够使用 cout 来显示消息,第一个程序需要这些定义。#include 编译指令导致 iostream 文件的内容随源代码文件的内容一起被发送到编译器,即 iostream 文件的内容将取代程序中的代码 #include <iostream>
。
即
#include <...>
语句将尖括号内的文件包含进入此文件,形成一个复合文件。
iostream 这样的文件叫做头文件或者包含文件,包含特定类的函数,类似于python 中的包或者库,引用这些文件能够避免重复造车轮子的问题。比如 math 文件中包含许多与数学计算有关函数。比如 sin() 函数,如果要在程序里重新书写一个三角函数,那么效率则大大降低。
通常标准 c++ 头文件没有后缀,区别于 c 语言有后缀 .h
3 、名称空间
如果使用 iostream ,而不是 iostream.h ,则应该使用名称空间编译指令来使 iostream 中的定义对程序可用:using namespace std;
使用上述代码的原因是在编写大型程序时,可能使用两个已经封装好的产品(外部文件,能够提供函数、关键字等支持,比如文件头),这两个产品 A , B 都包含一个函数 wanda() ,在调用函数时计算机会出现无法识别的错误。为了解决这个问题,可以给每一个产品取一个名字(将产品封装在名称空间中),在要调用函数时,要么先声明函数是哪个名称空间的:using namespace A
,要么在函数名前加上名称空间: A::wanda()
,这样就不会出现函数名之间的干扰问题了。
上述方法使得一个名称空间内的所有函数都可用,因此,如果依然担心函数名重复,可以只使用所需的名称即可:using std::cout
,using std::endl
等。
4、输出
4.1 cout << " ";
可以将 c++ 的输出看做是信息的流出,即信息流的方式。cout 对象表示这种流,其属性是在 iostream 中定义的,cout 的对象属性包括一个插入运算符<<,表示将其右侧的信息插入到流中。
输出语句:cout << " it is like a information stream ";
4.2 endl和“ \n ”
endl 表示重起一行,即将光标移到下一行。类似于 endl 这样对 cout 来说具有特殊意义的符号被称为控制符。endl 也是在 iostream 中定义的,位于名称空间 std 中。
使用方式:
cout << " this is the first one ";
cout << endl; // 换行输入endl
cout << " this is the second " << endl; //直接输入 endl ,endl随着前面的字符串流到了输出流里。
cout << "this is the third ";
cout << " if there is no endl...";
\n 也表示重起一行,但是它只被视为是个字符,并不表示控制符,通常在字符串中使用,endl 可以替换 \n。
使用方式:
cout << " in a string i can use \n like this \n";
cout << " it is really valid and this sentence gets down. ";
5、c++代码格式
1,c++ 语言中,回车的作用和空格与制表符相同,即在可以使用空格的地方也可以直接回车,在使用回车的地方也可以使用空格,那么一条语句如果有几个空格,就可以写在几行上,这样的书写方式不违背 c++ 的规则,但是不美观,不推荐这样写。
2、c++ 中用分号标识语句结尾。
3、推荐风格
每条语句占一行
每个函数都有一个开始和结束花括号,这两个花括号各占一行
函数中的语句都相对于花括号进行缩进