P3 程序的注释

P3 注释

注释 ( comments )可以帮助人类读者理解程序。注释通常用于概述算法,确定变量的用途,或者解释晦涩难懂的代码段。编译器会忽略注释,因此注释对程序的行为或性能不会有任何影响。C++中有2种注释:一种为单行注释,另一种为界定符对注释(多行注释)。

1. 单行注释

单行注释多用于对单个语句的注释,用法://单行注释,示例如下图所示(灰色代码):

#include <iostream>
using namespace std;
int main()
{
	cout << "Hello World" << endl;// 此行代码的意义是能够输出HelloWorld
	system("pause");
	return 0;
}

代码分解如下:

#include <iostream>

Primer C++第五版第1.2节:
开头告诉编译器我们想要使用iostream库,尖括号中的名字(本例中实isotream)指出了一个头文件(header),每个使用标准库设施的程序都必须包含相关的头文件。#include指令和头文件的名字必须卸载同一行中。通常情况下,#include指令必须出现在所有函数之外,我们一般将一个程序的#include 指令都放在源文件的开头位置。
iostream 库包含2个基础类型 istreamostream,分别表示输入流和输出流。
标准库定义了4个输入输出(IO)对象,为了处理输入,使用一个名为 cin(发音为see-in)的 istream 类型的对象。这个对象也被称为标准输入(standard input)。对于输出,我们使用一个名为 cout(发音为see-out)的 ostream 类型的对象。此对象也被称之为标准输出(standard output)。标准库还定义了其他两个 ostream 对象,名为 cerrclog (发音分别为 see-err 和 see-log)。我们通常用 cerr 来输出警告和错误消息,因此它也被称之为标准错误(standard error)。而clog 用来输出程序运行时的一般性信息。

iostream库
istream
cin
ostream
cout
cerr
clog
using namespace std;

如果此处没有这个语句,则后面的cout和endl需要加上前缀,变成std:: cout 和 std:: endl。

前缀std::指出名字cout 和 endl 是定义在名为 std命名空间中的。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突,标准库定义的所有名字都在命名空间 std 中。

int main()
{
	cout << "Hello World" << endl;// 此行代码的意义是能够输出HelloWorld
	system("pause");
	return 0;
}

一个函数的定义包括四部分:返回类型(return type)、函数名(function name)、一对括号包围的形参列表(parameter list,允许为空)以及函数体(function body)。在本例中,main 的形参列表是空的(()中什么都没有),main函数的返回类型必须为int,即整数类型。int 类型是一种内置类型(built-in type),即语言自身定义的类型。函数定义的最后一部分是函数体,它是一个以左花括号(curly brace)开始,以右花括号结束的语句块(block of statements)。

cout << "HelloWorld" << endl;

main的函数体的第一条语句执行了一个表达式(expression)。在C++中,一个表达式产生一个计算结果,它由一个或者多个运算对象和(通常是)一个运算符组成。这条语句的表达式中使用了输出运算符(<<)在标准输出上打印消息。
此处 << 运算符接受2个运算对象。
左侧的运算对象必须是一个ostream对象,cout(发音为see-out)是ostream类型的对象,此对象也被称之为标准输出
右侧的运算对象是要打印的值。
此运算符将给定的值写到给定的ostream对象中。输出运算符的计算结果就是其左侧运算对象。即,计算结果就是我们写入给定值的那个ostream对象。
在使用完第一个运算符后,第一个运算符的结果成为了第二个运算符的左侧运算对象。这样我们就可以将输出请求连接起来,因此我们的表达式等价于:

(cout << "Hello World" )<< endl;

链中每个运算符的左侧运算对象都是相同的,在本例是cout。我们也可以用两条语句生成相同的输出:

cout << "Hello World";
cout << endl;

第一个输出运算符给用户打印一条消息。这个消息是一个字符串字面值常量(string literal),是用一对双引号包围的字符序列,在双引号之间的文本被打印到标准输出。
第二个输出运算符打印endl,这是一个被称作操纵符(manipulator)的特殊值。写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。

2. 界定符对注释(多行注释)

界定符对通常用于多行解释,多行注释多用于对一段代码的解释,常见于开头部分。用法:/*多行注释 */,示例如下图所示(灰色代码):

#include <iostream>
using namespace std;
/*
  多行注释
  main函数是程序的一个入口
  每个程序有且只有一个main函数
*/

int main()
{
	cout << "HelloWorld" << endl;// 此行代码的意义是能够输出HelloWorld
	system("pause");
	return 0;
}

注意:一个注释不能嵌套在另一个注释之内,例如,在VS系统中编译下面的程序,就会产生错误。
在这里插入图片描述

关于main函数的问题,理论上是一个程序只有1个main函数,当在源文件下创建新建项时,输入main函数,再次运行时,系统会报错,有2个方法可以解决:

  1. 因此可以把不运行的项,点击右键,属性,点击从生成中排除,点击是。
  2. 把不运行的项用main1,main2代替,要运行的用main。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值