/*the first C++ program*/
#include <iostream>
using namespace std;
//main function
int main()
{
cout << "Hello world" << endl;
return 0;
}
#include <iostream> 预处理指示,包含格式化输入和输出的iostream库
using namespace std; 使用 名字空间 标准
#include语句:包含的意思,意为把某个文件插入此处
有#include < > 和#include " " 两种形式
尖括号: < > 表示系统提供的头文件
双引号: " " 固定目录,即 系统目录 + 当前目录 ,一般用于包含自己写的头文件
< >与" "中的文件名不要有空格,加空格表示另一个文件
#include 指示必须单独写成一行——头文件名和 #include 必须在同一行。
通常,#include 指示应出现在任何函数的外部。
而且习惯上,程序的所有 #include 指示都在文件开头部分出现。
C++ 并没有直接定义进行输入或输出(IO)的任何语句,这种功能是由标准库提供的
标准库定义了 4 个 IO 对象。处理输入时使用命名为cin(读作 see-in)的 istream 类型对象。这个对象也称为标准输入。处理输出时使用命名为 cout(读作 see-out)的 ostream 类型对象,这个对象也称为标准输出。标准库还定义了另外两个 ostream 对象,分别命名为 cerr 和 clog(分别读作“see-err”和“see-log”)。cerr 对象又叫作标准错误,通常用来输出警告和错误信息给程序的使用者。而 clog 对象用于产生程序执行的一般信息。
每个 C++ 程序都包含一个或多个函数,而且必须有一个命名为main。
每个 C++ 程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显式调用的函数。
操作系统通过调用 main 函数来执行程序,通过 main 函数返回的值来确定程序是否成功执行完毕。
在大多数系统中,main 函数的返回值是一个状态指示器。返回值0往往表示main函数成功执行完毕。
每一种操作系统都有自己的方式告诉用户 main 函数返回什么内容,即平台相关.
Linux 下可用命令 echo $?
Windows 下 echo %ERRORLEVEL%
cout << "Hello world" << endl; 将字符串字面值Hello world输出到标准输出
endl 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区。
通过刷新缓冲区,用户可立即看到写入到流中的输出.
标准c++要求main函数返回值类型为int,并规定main函数末尾默认
自动添加return 0,也就是自动正常结束
Note:
在写 C++ 程序时,大部分出现空格符的地方可用换行符代替。
这条规则的一个例外是字符串字面值中的空格符不能用换行符代替。
另一个例外是空格符不允许出现在预处理指示中。
关于注释:
注释可以帮助其他人阅读程序,通常用于概括算法、确认变量的用途或者阐明难以理解的代码段。
注释并不会增加可执行程序的大小,编译器会忽略所有注释
C++ 中有单行注释和成对注释两种类型的注释。
单行注释以双斜线(//)开头,行中处于双斜线右边的内容是注释,被编译器忽略。
另一种定界符,注释对(/* */),是从 C 语言继承过来的。这种注释以“/*”开头,以“*/”结尾。
编译器把落入注释对“/**/”之间的内容作为注释
任何允许有制表符、空格或换行符的地方都允许放注释对。注释对可跨越程序的多行,但不是一定要如此。
当注释跨越多行时,最好能直观地指明每一行都是注释。我们的风格是在注释的每一行以星号开始,指明整个范围是多行注释的一部分。
Note:注释对不可嵌套!
注释总是以 /* 开始并以 */ 结束。这意味着,一个注释对不能出现在另一个注释对中。
如下面一段代码 为嵌套注释:
#include <iostream>
/*
* comment pairs /* */ cannot nest.
* "cannot nest" is considered source code,
* as is the rest of the program
*/
int main()
{
return 0;
}