C++基础知识(一)—— C++程序结构

下面我们从一个最简单的程序入手看一个C++程序的组成结构。

// my first program in C++
#include <iostream.h>
using namespace std;

int main() {
    cout << “Hello World!”;
    return 0;
}
Hello World!

      上面左侧显示了我们的第一个程序的源代码,代码文件名称为hellowworld.cpp。右边显示了程序被编译执行后的输出结果。编辑和编译一个程序的方法取决于你用的是什么编译器,根据它是否有图形化的界面及版本的不同,编译方法也有可能不同,具体请参照你所使用的编译器的使用说明。


      以上程序是多数初学者学会写的第一个程序,它的运行结果是在屏幕上打出”Hello World!”这句话。 虽然它可能是C++可写出的最简单的程序之一,但其中已经包含了每一个C++程序的基本组成结构。 

下面我们就逐个分析其组成结构的每一部分:

// my first program in C++

    这是注释行。所有以两个斜线符号(//)开始的程序行都被认为是注释行,这些注释行是程序员写在程序源代码内,用来对程序作简单解释或描述的, 对程序本身的运行不会产生影响。在本例中, 这行注释对本程序是什么做了一个简要的描述。


# include < iostream.h >

     以#标志开始的句子是预处理器的指示语句。它们不是可执行代码,只是对编译器作出指示。在本例中这个句子# include < iostream.h > 告诉编译器的预处理器将输入输出流的标准头文件(iostream.h)包括在本程序中。这个头文件包括了C++中定义的基本标准输入-输出程序库的声明。此处它被包括进来是因为在本程序的后面部分中将用到它的功能。


using namespace std;

     C++标准函数库的所有元素都被声明在一个名空间中,这就是std名空间。因此为了能够访问它的功能,我们用这条语句来表达我们将使用标准名空间中定义的元素。这条语句在使用标准函数库的C++程序中频繁出现,本教程中大部分代码例子中也将用到它。


int main()

      这一行为主函数(main function)的起始声明。main function是所有C++程序的运行的起始点。 不管它是在代码的开头,结尾还是中间 – 此函数中的代码总是在程序开始运行时第一个被执行。并且,由于同样的原因,所有C++程序都必须有一个main function。

      main 后面跟了一对圆括号(),表示它是一个函数。C++中所有函数都跟有一对圆括号 (),括号中可以有一些输入参数。如例题中显示,主函数(main function)的内容紧跟在它的声明之后,由花括号 ({})括起来。 


cout << “Hellow World!”;

     这个语句在本程序中最重要。 cout 是C++中的标准输出流(通常为控制台,即屏幕),这句话把一串字符串(本例中为”Hello World”)插入输出流(控制台输出)中。cout 在的声明在头文件iostream.h中,所以要想使用cout 必须将该头文件包括在程序开始处。

       注意这个句子以分号(;)结尾 。分号标示了一个语句的结束,C++的每一个语句都必须以分号结尾。 (C++ 程序员最常犯的错误之一就是忘记在语句末尾写上分号) 。


return 0;

     返回语句(return) 引起主函数 main()执行结束,并将该语句后面所跟代码(在本例中为0) 返回。这是在程序执行没有出现任何错误的情况下最常见的程序结束方式。在后面的例子中你会看到所有C++程序都以类似的语句结束。

      你可能注意到并不是程序中的所有的行都会被执行。程序中可以有注释行(以//开头),有编译器预处理器的指示行(以#开头),然后有函数的声明(本例中main函数),最后是程序语句(例如调用cout <<),最后这些语句行全部被括在主函数的花括号({})内。

本例中程序被写在不同的行中以方便阅读。其实这并不是必须的。例如,以下程序

int main ()
{
cout << " Hello World ";
return 0;
}

也可以被写成:

int main () { cout << " Hello World "; return 0; } 

以上两段程序是完全相同的。


在C++中,语句的分隔是以分号(;)为分隔符的。分行写代码只是为了更方便人阅读。

以下程序包含更多的语句:

// my second program in C++
#include <iostream.h>

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

在这个例子中,我们在两个不同的语句中调用了cout << 函数两次。再一次说明分行写程序代码只是为了我们阅读方便,因为这个main 函数也可以被写为以下形式而没有任何问题:

int main () { cout << " Hello World! "; cout << " I'm to C++ program "; return 0; } 

为方便起见,我们也可以把代码分为更多的行来写:

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

它的运行结果将和上面的例子完全一样。

这个规则对预处理器指示行(以#号开始的行)并不适用,因为它们并不是真正的语句。它们由预处理器读取并忽略,并不会生成任何代码。因此他们每一个必须单独成行,末尾不需要分号(;)


注释 (Comments)

注释(comments)是源代码的一部分,但它们会被编译器忽略。它们不会生成任何执行代码。 使用注释的目的只是使程序员可以在源程序中插入一些说明解释性的内容。 

C++ 支持两中插入注释的方法: 

// line comment
/* block comment */ 

第一种方法为行注释,它告诉编译器忽略从//开始至本行结束的任何内容。第二种为块注释(段注释),告诉编译器忽略在/*符号和*/符号之间的所有内容,可能包含多行内容。

在以下我们的第二个程序中,我们插入了更多的注释。

/* my second program in C++
with more comments */

#include <iostream.h>

int main ()
{
cout << "Hello World! "; // says Hello World!
cout << "I'm a C++ program"; // says I'm a C++ program
return 0;
}
Hello World! I'm a C++ program 

如果你在源程序中插入了注释而没有用//符号或/*和*/符号,编译器会把它们当成C++的语句,那么在编译时就会出现一个或多个错误信息。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给大家推荐一款高大上的代码高亮插件(sublime,github风格)——highlight.js

经常在一些大神博客里面看到非常好看的高亮代码&#xff0c;有sublime风格&#xff0c;GitHub风格等等。毫无疑问&#xff0c;好的高亮代码插件可以不仅仅让你的博文显得更高大上&#xff0c;更重要的是舒适的阅读体验。经过我在网上的一番搜罗&#xff0c;终于找到了一款非常赞…

C++基础知识(二)—— 变量和数据类型

你可能觉得这个“Hellow World”程序用处不大。我们写了好几行代码&#xff0c;编译&#xff0c;然后执行生成的程序只是为了在屏幕上看到一句话。的确&#xff0c;我们直接在屏幕上打出这句话会更快。但是编程并不仅限于在屏幕上打出文字这么简单的工作。为了能够进一步写出可…

WCF

http://www.cnblogs.com/wintersun/archive/2011/02/17/1956832.html

C++基础知识(三)—— 常量

一个常量&#xff08;constant&#xff09;是一个有固定值的表达式。 字&#xff08;Literals&#xff09; 字是用来在程序源码中表达特定的值。在前面的内容中我们已经用了很多的字来给变量赋予特定的值。例如&#xff1a; a 5;这句代码中5就是一个字常量。 字常量(literal…

Android获取本机号码及运营商

import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log;public class SIMCardInfo {/*** TelephonyManager提供设备上获取通讯服务信息的入口。 应用程序可以使用这个类方法确定的电信服务商和国家 以及某些类型的用户访问信息…

C++基础知识(四)—— 操作符/运算符

前面已经学习了变量和常量&#xff0c;我们可以开始对它们进行操作&#xff0c;这就要用到C的操作符。有些语言&#xff0c;很多操作符都是一些关键字&#xff0c; 比如add, equals等等。C的操作符主要是由符号组成的。这些符号不在字母表中&#xff0c;但是在所有键盘上都可以…

Java中如何克隆集合——ArrayList和HashSet深拷贝

2019独角兽企业重金招聘Python工程师标准>>> 编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List&#xff0c;Set&#xff0c;ArrayList&#xff0c;HashSet或者其他集合实现的方法。需要记住的是&#xff0c;Java集合的拷贝构造函数只提供浅拷贝而不是深拷…

C++基础知识(五)—— 基本输入输出

控制台(console)是电脑的最基本交互接口&#xff0c;通常包括键盘(keyboard)和屏幕(screen)。键盘通常为标准输入设备&#xff0c;而 屏幕为标准输出设备。 在C的iostream函数库中&#xff0c;一个程序的标准输入输出操作依靠两种数据流&#xff1a;cin 给输入使用和cout给输出…

PHP之preg_replace()与ereg_replace()正则匹配比较讲解

<?php//preg_replace()和ereg_replace()函数的使用的比较// -------preg_replace()--------------------------//1.进行字符串的查找的替换 $str "daoyu shi ge hao hai zi 5555"; $pattern "/\s/"; //如果将…

C++ 控制结构和函数(一) —— 控制结构

一个程序的语句往往并不仅限于线性顺序结构。在程序的执行过程中它可能被分成两支执行&#xff0c;可能重复某些语句&#xff0c;也可能根据一些判断结果而执行不同的语句。因此C 提供一些控制结构语句 (control structures) 来实现这些执行顺序。 为了介绍程序的执行顺序&…

如何安装Favicon

如何安装Favicon favicon.ico图像放在根目录下(也可以是其他目录)在页面源文件的<head></head>标签之间插入 <link rel"shortcut icon" href" /favicon.ico" /> 最后形成: <head> ... <link rel"shortcut icon" hre…

C++ 控制结构和函数(二) —— 函数I(Functions I)

通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来&#xff0c;从而利用C所能提供的所有结构化编程的潜力。 一个函数(function)是一个可以从程序其它地方调用执行的语句块。以下是它的格式&#xff1a; type name ( argument1, argument2, ...) statement…

条件概率的几何解释 由定义计算条件概率 由条件概率公式计算条件概率

A发生&#xff0c;则去掉圈A以外的区域&#xff0c;形成新的样本空间 &#xff08;如果是概率质量函数&#xff0c;则称为归一化&#xff09;然后在A发生的前提下&#xff0c;B的概率为 圈A与圈B的公共区域/圈A 这就是条件概率的几何解释~~~ 甲乙两人各抛一个骰子&#xff0c…

C++ 控制结构和函数(三)—— 函数II(Functions II)

参数按数值传递和按地址传递(Arguments passed by value and by reference) 到目前为止&#xff0c;我们看到的所有函数中&#xff0c;传递到函数中的参数全部是按数值传递的(by value)。也就是说&#xff0c;当我们调用一个带有参数的函数时&#xff0c;我们传递到函数中的是变…

oracle XMLType字段使用方法

2019独角兽企业重金招聘Python工程师标准>>> 刚才研究了一下XMLType字段使用方法 &#xff0c;现在给大家介绍一下。 主要是新增、查询、修改XMLType字段 表结构&#xff1a; 建表sql&#xff1a; -- Create table create table T_BOOK ( ID VARCHAR2(32)…

C++ 高级数据类型(一)—— 数组

数组(Arrays) 是在内存中连续存储的一组同种数据类型的元素&#xff08;变量&#xff09;&#xff0c;每一数组有一个唯一名称&#xff0c;通过在名称后面加索引&#xff08;index&#xff09;的方式可以引用它的每一个元素。 也就是说&#xff0c;例如我们有5个整型数值需要存…

DataUml Design 介绍8-DataUML 1.2版本正式发布

为什么80%的码农都做不了架构师&#xff1f;>>> DataUML 1.2版本在软件架构上有了很大的变化&#xff0c;目前DataUML支持Access、SQLite、MY SQL 、ORACLE、MS SERVER2000、MS SERVER2005、MS SERVER2008数据库。 下载 主要更新内容如下&#xff1a;  1、支持S…

C++ 高级数据类型(二)—— 字符序列

前面基础知识部分讲C变量类型的时候&#xff0c;我们已经提到过C的标准函数库提供了一个string类来支持对字符串的操作。然而&#xff0c;字符串实际就是一串连续的字符序列&#xff0c;所以我们也可以用简单的字符数组来表示它。 例如&#xff0c;下面这个数组: char jenny …

转: seajs手册与文档之 -- 模块标识

目录 模块标识 相对标识顶级标识普通路径文件后缀的提示模块标识 模块标识是一个字符串&#xff0c;用来标识模块。在 require、 require.async 等加载函数中&#xff0c;第一个参数都是模块标识。define 函数的 dependencies 参数也是由模块标识组成。 SeaJS 中的模块标识是 C…

C++ 高级数据类型(三)—— 指针

我们已经明白变量其实是可以由标识来存取的内存单元。但这些变量实际上是存储在内存中具体的位置上的。对我们的程序来说&#xff0c;计算机内存只是一串连续的单字节单元(1byte cell)&#xff0c;即最小数据单位&#xff0c;每一个单元有一个唯一地址。 计算机内存就好像城市中…