程序的结构

学习一门编程语言,最好的办法是通过编写程序。通常情况下,第一个程序初学者写的是一个名为“Hello World”程序,它只是输出“Hello World”到你的电脑屏幕。虽然这是很简单的,它包含了所有的基本组成部分的C ++程序有:

1
2
3
4
5
6
7
// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
}
你好,世界!


上面的左图显示了此计划的C ++代码。右侧面板示出了当该程序由计算机执行的结果。灰色号码面板的左边是行号,以讨论方案和研究的错误更容易。他们不是计划的一部分。

让我们来看看由该行程序行:

1号线:  // my first program in C++
两斜线迹象表明,该行的其余部分是由程序员但这对程序的行为没有任何影响插入评论。程序员使用它们包括有关代码或程序简短解释或意见。在这种情况下,它是该方案的一个简短的介绍说明。

2号线:  #include <iostream>
用散列符号(开头的行 #)的指令读取和所谓的解释 预处理。他们本身开始程序的编译之前解释专线。在这种情况下,该指令 #include <iostream>时,指示预处理器包括的标准C ++代码段,被称为 标题的iostream,即允许执行标准输入和输出操作,如写此程序的输出( 你好,世界)到屏幕上。

3号线:​​一个空行。
空行对程序没有影响。他们只是提高了代码的可读性。
4号线:  int main ()
该行启动函数的声明。本质上,一个功能是一组,它们被给定一个名字代码语句:在这种情况下,这给出了名称为“主”到该组的后面的代码语句。功能将详细在后面的章节中讨论,但本质上,它们的定义是引入了一个类型(继承 int),一个名字( main)和一对括号(中 ()),包括可选参数。

命名该功能 main是所有C ++程序的特殊功能; 它是在程序运行时调用的函数。所有的C ++程序的执行始于 main功能,无论在哪里的作用实际上是位于代码中。
线5和7: {}
开放括号( {)第5行表示之初 main的功能定义,右大括号( })在第7行,指示其结束。这些括号之间一切都是函数体定义时发生的情况 main会被调用。所有函数使用括号来表示其定义的开始和结束。

6号线:  std::cout << "Hello World!";
这条线是一个C ++声明。一种说法是,实际上可以产生一定效果的表现。它是一个程序的肉,指定其实际行为。发言都以相同的顺序,它们出现在函数体中执行。

这种说法有三个部分:一是 std::cout,它标识 ST ANDAR  ð Ç haracter  出来放设备(通常,这是计算机屏幕)。第二,插入操作符( <<),这表明,接下来被插入 std::cout。最后,引号中的句子(“世界,你好!”),是插入到标准输出的内容。

请注意,该声明以分号结束( ;)。这个字符标志着语句的结束,正如期结束的英文句子。所有的C ++语句都必须以分号结束。一个在C ++中最常见的语法错误是忘记以分号结束的声明。

您可能已经注意到,没有执行代码时,该程序的所有行执行操作。有一个包含注释(开头的行 //)。有一个带有预处理器(开头的指令线 #)。有定义的函数(在这种情况下,一个线 main功能)。最后,与以分号(插入到结尾的语句的行 cout),这是由括号(界定的块内 { }的)的 main功能。

该方案已在不同的线路被构造并适当地缩进,以使其更容易理解为人类阅读它。但是,C ++不会对压痕或如何分割在不同的线路指示严格的规定。例如,而不是,

1
2
3
4
int main ()
{
  std::cout << " Hello World!";
}


我们可以这样写:
 
int main () { std::cout << "Hello World!"; }


都在一个单一的行,这将不得不完全含义与上述代码相同。

在C ++中,语句之间的间隔与一个结束分号(指定 ;),以分离成不同的行不无所谓在所有用于此目的。许多语句可以写在一行,或者每个语句可以在自己的路线。的代码中不同行的划分只是为了使其更加清晰,示意为可以读取它的人,但对程序的实际行为没有影响。

现在,让我们添加一个额外的语句,我们的第一个程序:

1
2
3
4
5
6
7
8
// my second program in C++
#include <iostream>

int main ()
{
  std::cout << "Hello World! ";
  std::cout << "I'm a C++ program";
}
你好,世界!我是一个C ++程序


在此情况下,程序进行两插入到 std::cout在两个不同的语句。再次,在不同的代码行分离只是提供了更大的可读性该方案,因为 main本来是完全有效的定义是这样的:

 
int main () { std::cout << " Hello World! "; std::cout << " I'm a C++ program "; }


源代码本来也可以分为更多的代码行来代替:

1
2
3
4
5
6
7
int main ()
{
  std::cout <<
    "Hello World!";
  std::cout
    << "I'm a C++ program";
}


其结果将再次一直完全一样在前面的例子。

预处理指令(那些首先 #)超出这个一般规则,因为它们不是语句。他们是阅读线条和正确编译开始前的预处理程序处理。预处理指令必须在自己的行中指定和,因为它们不是语句,不必以分号结束( ;)。

注释

如上所述,注释不影响程序的操作; 然而,它们提供直接的源代码的程序在做什么,以及它如何运作中记录的重要工具。

C ++支持的注释代码两种方式:

1
2
// line comment
/* block comment */ 
 


其中第一,被称为 行注释,丢弃在那里一对斜杠标志(一切 //)被发现了到同一行的末尾。第二个,称为 块注释,丢弃之间的所有 /*字符和第一次出现 */的字符,以包括多行的可能性。

让我们添加评论我们的第二个程序:

1
2
3
4
5
6
7
8
9
10
/* my second program in C++
   with more comments */

#include <iostream>

int main ()
{
  std::cout << "Hello World! ";     // prints Hello World!
  std::cout << "I'm a C++ program"; // prints I'm a C++ program
}
你好,世界!我是一个C ++程序


如果意见不使用注释字符组合包括了程序的源代码中 ///*或者 */,编译器需要他们,好像他们是C ++表达式,极有可能导致编译失败与一个或几个错误消息。

使用命名空间std

如果你已经见过C ++代码,你可能已经看到 cout,而不是被使用 std::cout。这两个名称相同的对象:第一个使用它的 非限定名cout),而第二个直接的内限定它 的命名空间  std(作为 std::cout)。

cout是标准库的一部分,而在C ++标准库中的所有元素都在所谓的声明 命名空间:命名空间 std

为了引用元素的 std命名空间的程序应即限定每一个使用该库的元素(如我们通过做前缀 coutstd::),或引入其组件的可见性。引入这些组分的能见度最典型的方法是通过以下方式 使用的声明

 
using namespace std;
 


上述声明允许在所有元素 std命名空间在被访问 不合格的方式(不带 std::前缀)。

考虑到这一点,最后一个例子可以重写,使不合格的用途 cout为:
1
2
3
4
5
6
7
8
9
// my second program in C++
#include <iostream>
using namespace std;

int main ()
{
  cout << "Hello World! ";
  cout << "I'm a C++ program";
}
你好,世界!我是一个C ++程序


访问中的元素的两种方式 std命名空间(明确的鉴定和 使用声明)在C有效++和产生完全相同的行为。为简单起见,提高可读性,在这些教程中的示例会更频繁地使用后一种方法 使用的声明,但需要注意的是 明确的资质是唯一的方法,以保证名称冲突永远不会发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值