当前位置:首页技术教程第一章:了解C++程序的基本构成,快速入门指南
  • 素材类型: 推荐-素材
  • 上传时间:
        C++语言由美国AT&T贝尔实验室的Bjarne Stroustrup博士于20 世纪80 年代发明和实现,目的是解决C 语言开发过程中遇到的棘手问题。C++语言起初被称为Cwith Classes、A Better C,作为C语言的增强版而出,直到 1998 年才正式更名为C++。
        从其发展过程我们可以看到,C++语言由C语言发展而来(兼容C语言),功能远远超过C语言。但是不要因此而误解为“C++兼容C语言的所有东西”,C++保留了C语言的大部分语法特征,大部分的C语言程序都可以很轻松地在C++编译器中编译通过。为了更好地使用C++,首先必须了解C++,掌握C++和C语言的区别。这就是本章要谈论的内容。希望本章的讨论能帮助你对 C++有大致的认识。
第一章:了解C++程序的基本构成,快速入门指南

实用经验1C++程序由哪些部分构成

        在介绍 C++程序构成之前,我们先看一个简单的 Hello world 的 C++程序。Hello world程序的源代码如下。为了方便描述,我们这里为 Hello world程序加上行号。Hello world虽然简单,但是它涵盖了C++程序所包含的所有组成。
//  最简单的 Hello world示例程序,实现 Hello world屏幕打印C++语言的注释
001  #include <iostream>    //编译指示,告诉编译器在编译过程中所需信息的来源
003  using namespace std;    //声明性语句,告诉编译器使用std命名空间
005  int main(int argc, char * argv[]),    //main函数,每个C+程序都必须包含此main函数
006{
007  //屏幕打印Helloworld C++语言的注释
008  cout <<"Hello world!"<<endl;    //可执行性语句
009  return0;    //main函数返回值
010}
      我们先简单地概括一下C++程序构成:C++程序包含一个或多个函数,但是必须有一个main 函数。操作系统通过调用 main 函数实现程序的执行,程序执行完毕后必须由main函数返回一个值给操作系统。在 C++程序中可能还会包含编译指示、声明语句等非必写项。
      现在我们对照Hello world 分析一下。

1.编译指示

      001 行代码是一句“编译指示”,其功能就是告诉编译器编译过程中所需的一些信
息。它们影响一个程序是否能被正确编译,并在程序运行时造成影响。编译指示的格
式为:在新的一行中,以#开始并且不使用“分号”结束。
      例如,Hello world实例:
#include<iostream>

      就是告诉编译器,<iostream>中实现的对象在后续代码中可以使用,并且对后续代码造成输出 Hello world的影响。

2.声明性语句

      003行是一句“声明性语句”,声明性语句在作用上完全等同于“编译指示”:它们同样仅影响编译过程,但在编译结果中并不生成对应的指令。003行是一种声明性语句,常见的声明性语句还有下述这种。在一个cpp 文件中定义:

  extern int nValue;

      在另一个cpp 文件中声明 nValue变量:

   extern int nValue;

      extern intnValue;也是声明性语句,在编译过程中不生成对应指令,只是告诉编译器 nValue 已经在别处定义了,可以直接使用无须再次定义。
      提示:声明性语句是C++的标准语句,只是它不生成指令。声明性语句在语法格式上和普通语句没有明显区别。

3.可执行语句

      007和 008两行就是可执行语句。可执行语句和声明性语句一样都是C++的标准语句。但是与声明性语句不同,可执行语句在编译过程中生成对应的指令。可执行语句类似于自然语言中的句子,C++中有完成单一任务的简单语句,也有作为一个单元执行的一组语句组成的复合语句,还有条件分支语句和循环控制语句,所以可执行语句按照其功能可以分成简单语句、复合语句、控制语句、try 语句等。
      说明:可执行语句是C++程序的主体,大型C++工程中99%以上的代码都是可执行语句。

4.简单语句

      简单语句是最常用的一种语句形式。我们经常写的表达式语句、空语句都属于简单语句。通过简单语句可以完成某单一功能。.如下面这行代码即完成两数的求和:
   iVal=v1+v2;

5.复合语句

      复合语句通常被称为块语句。使用花括号括起来的语句序列(可以为空),即一个复合语句或语句块。块标识了一个作用域,在块中引入的标识符名称只能在该块或该块嵌入的子块中访问,在此语句块以外无法访问。
      复合语句通常用在语法规则要求使用单个语句,但程序逻辑却需要不止一个语句的地方。下述代码就是一个标准的复合语句块:
{
   intiVal=0;
   iVa1=1+ sum(1,5);
}

      此复合语句定义了一个只在此语句块可见的int变量iVal,然后将1和 sun(1,5)的和赋给iVal。在语句块之外iVal不可见。

6.控制语句

      控制语句完成程序的逻辑控制,常见的控制语句有if_else 语句、for 循环语句、while 循环语句、do-while 循环语句及goto 语句等。这些语句主要完成程序逻辑和流偏程的控制,是C++语言的重要组成部分。

7.函数

      函数是C++程序的重要组成部分,C++的函数定义必须包含4个元素:返回类型、函数名称、圆括号内的形参表和函数体。这里所说的函数体指的是以花括号开始并以花括号结束的语句块。Hello world 程序中 main 函数就是 C++的一个标准函数,main函数的返回类型为 int,函数名称为 main,形参表为空,函数体为大括号包含的 006~010共5行语句。
      函数的名称说明函数的功能,返回值返回函数执行后的输出结果,形式参数表示

      函数的输入或输出,函数体决定函数的执行过程。在 C++函数中有一个特别重要的关键词,用于在函数语句执行完之后返回结果给回调者。这个关键词就是return。一般函数定义格式如下:
  返回类型函数名称(形式参数1,形式参数2,..,形式参数n);
  {
      retun:
  }

      为了描述得更加形象,现在我们看一个字符串输出打印函数,代码如下:

  //实现字符串打印输出
  void StrPrint(char *pszPrtStr
  {
  //在屏幕上输出字符串
      printf("this string is %s\n",pszPrtStr);
      retun:
  }
      函数的函数名称为StrPrint,意思为字符串打印函数;返回类型为void,表示返回类型为空类型只有一个形式参数,是指向字符串的指针 pszPrtStr,类型为 char*。
      C++和 C函数的区别:
      ●C++的函数定义必须同时包含返回类型、函数名称、形参表格和函数体。但是在C++标准化之前返回类型不是必需的,如果一个函数缺少显示返回类型,函数的返回类型将被假定为int类型。
      ●C语言的函数定义由于历史发展的原因可以没有返回类型。如下述的 Max 函数在 C语言编译器中编译时就是合法的,在标准化后的C++编译器中编译就是非法的。这里需要说明的是,C语言中如果一个函数没有返回值,则默认返回int类型。
  //求两数的最大值
  Max(int nA,intnB)
  {
      return (nA>nB)?(nA):(nB);
  }

8.注释

      注释顾名思义就是C++程序的解释。它不是 C++程序的必需组成部分,但却是重要的组成部分。注释可帮助他人阅读程序,理解程序的意图。注释不会增加 C++可执行程序的大小,因为在编译时编译器会忽略所有注释。
      C++有两种类型的注释:单行注释和成对注释。
      (1)单行注释以双斜线(//)开头,行中双斜线右方的所有内容就是注释,会被编译器忽略。
      (2)成对注释指/**/,从C 语言继承而来,这种注释以/*开头,以*/结束。编译器把落入注释对/**/中的内容作为注释。注释对可以跨越程序的多行,但并非一定要如此。
      注意:注释对不可嵌套,注释总是以/*开始并以*/结束。这意味着,一个注释对不能出现在另一个注释对中。
      另外,由注释对嵌套导致的编译器错误信息容易使人迷惑。所以在实际编程过程中需养成良好的编程习惯,禁止注释对嵌套。
请谨记
      一个C++程序是完成某一功能的一个整体,它由编译指示、执行性语句、声明性语句、函数及注释等组成。
      ●每个C++程序都必须有一个入口函数即main函数,这个函数的名称必须为main,返回类型必须为 int。
温馨提示:

文章标题:第一章:了解C++程序的基本构成,快速入门指南

文章链接:https://www.xiciw.com/jsjc/1425.html

更新时间:2024年02月09日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiciw#qq.com我们将第一时间处理!

资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

                               

所有资源仅限于参考和学习,版权归原作者所有,更多请阅读菜鸟资源服务协议

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
技术教程

【精校教程】Esxi下配置高恪软路由系统安装教程

2024-2-9 9:59:00

技术教程

第二章:既有面向过程,为何还要面向对象,了解C++程序的基本构成,快速入门指南

2024-2-11 10:32:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索