您的位置:首页 > 编程语言 > C语言/C++

C++编程指南之程序结构

2007-05-11 15:59 531 查看
也许学习一种编程语言的最好方法就是编写一个程序了,请看我们的第一个程序:
//myfirstprograminC++


#include<iostream>

usingnamespacestd;


intmain()

{

cout<<"HelloWorld!";

return0;

}

运行结果:HelloWorld!
程序的编写和编译依赖于你所用的编译器,如何操作依赖于编译器的开发接口,如果你对如何编译一个C++控制台程序有疑问你可以参照编译器的参考手册或帮助手册。
这个程序是一个程序员学习一门语言时最经常用到的程序,程序运行的结果是在屏幕上打印一行字符:”HelloWorld!”。这是C++写的最简单的程序之一,但是已经含有了每个C++程序所必须有的部分。我们来看一下我们来写的每一行程序。
//myfirstprograminC++
这是注释行,所有以//开头的部分都不会对程序的编译起任何影响,程序员可以用它们对源码进行简短的说明,这样就可以对我们程序的纲要有所说明。
#include<iostream>
以#开头的行是预处理行,它们不是正式的程序行却对编译器的编译有指示作用,#include<iostream>告诉编译器把iostream标准头文件包含进来。Iostream标准头文件中包含了C++标准库中基本输入输出流的所有声明,它被包含进来是因为其中的函数将在下面的程序中使用。
usingnamespacestd
所有C++标准库中的元素都被声明在一个名为std的名字空间(namespace)中,因此为了用到其中的成员我们需要用这一行来进行声明。在使用C++标准库是这一行将经常出现。实际上在本指南的所有代码中都有这一行。
intmain()
这一行是main函数定义的开始,所有C++的程序都以main函数为入口,它在程序中是唯一出现的。其它的函数或者别的名字定义在main之前或之后都没有关系,无论如何main都是C++程序执行的第一个函数。由于同样的原因,一个C++程序只能有一个main函数。
在main单词后面有一对圆括号(()),因为这是一个函数声明,C++中函数声明与其它声明不同的就是名字之后的这一对圆括号,这对圆括号之中可以加上您需要的参数列表。
紧接在这对圆括号之后的是被花括号包含的main函数的函数体,这一部分是函数执行时要做的工作。
cout<<"HelloWorld";
这一行是一条C++语句,一条C++语句是一条或简单或复杂的可以产生结果的单元,实际上这条语句唯一的结果就是让我们的程序能够产生一个可见的输出。
Cout表示C++的标准输出流,这条语句的意思是在标准输出流(通常是屏幕)中插入一一个字符串(本例中是指HelloWorld字符串)。
Cout的声明在iostream标准文件的std名字空间中,这就是我们为什么要在开头部分将iostream这个标准文件包含进来来说明我们将用到这个特殊的名字空间。
注意一下C++语句是以(;)结尾的,(;)标志着一条语句的结束并且所有C++程序的所有语句都是以(;)结束的(最常见的语法错误就是忘记加;号了!)。
return0;
return语句来使main函数运行结束,return语句必须要有一个返回值(在我们的例子中返回值是0),返回值是0通常表明函数在执行期间是安照我们的意愿来的而没有任何错误。这是终止C++程序最常用的方法。
您可能注意到并不是所有的程序行在代码执行时都起作用,代码中有一些注释行(以//开头),还有一些编译器预处理的说明行(以#开头),然后才是函数的声明(本例是main函数),最后才是执行语句(像插入在cout中的字符),这些都在main函数的函数体中({}包含的部分)。
本程序将代码组织在不同的行来增加可读性,但是在C++中,我们并没有强制规定如何在不同的行来拆分代码,例如:
intmain()

{

cout<<"HelloWorld";

return0;

}

我们可以写成:
intmain(){cout<<"HelloWorld";return0;}

所有代码都写在一行与前面的代码并没有实质区别。
在C++中,语句的区分是以语句的结尾的(;)为标志的,因此在不同的代码行之间进行分开并没有任何关系。我们可以写许多语句在一行上或者把一行代码写到好多行上。代码在不同行上的分割只是让他们更易于阅读而已。让我们再解释一下:
//mysecondprograminC++


#include<iostream>

usingnamespacestd;

intmain()

{

cout<<"HelloWorld!";

cout<<"I'maC++program";

return0;

}

HelloWorld!I'maC++program


在本例中,我们用了两条语句来进行两个输出,在代码中我们将它写成两行来增加代码的可读性,但是我们也可以写成如下形式:
intmain(){cout<<"HelloWorld!";cout<<"I'maC++program";return0;}
只要我们觉得更方便我们也可以代码分成更多的行:
intmain()

{

cout<<

"HelloWorld!";

cout

<<"I'maC++program";

return0;

}
这三个程序的运行结果都是相同的。
预处理指令(以#开头)由于不是程序语句并不在此规则之内,这些行被预处理器读取和处理而且它们本身并不产生目标代码,预处理器以行为处理单位而不需要以(;)结尾。
注释
注释是不被编译器认识的源代码的一部分,它们什么都不做,它们存在的目的是允许程序员在源码中添加说明和描述。
C++支持两种类型的注释:
//linecomment

/*blockcomment*/
第一个是行注释,从//开始直到这一行的结束都补注释掉。第二个是块注释,在/*和*?之间的所有字符都被注释掉,可以包含多行。
看看我们给第二个程序添加的注释:
/*mysecondprograminC++

withmorecomments*/


#include<iostream>

usingnamespacestd;


intmain()

{

cout<<"HelloWorld!";//printsHelloWorld!

cout<<"I'maC++program";//printsI'maC++program

return0;

}

HelloWorld!I'maC++program


如果您在代码中添加了注释却没有使用//或者/**/,编译器将认为它们是普通的C++语句,当您进行编译的时候很可能会出现一些编译错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: