// demo.cpp 

#include <iostream>
using namespace std;

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

开始

  • C++对大小写敏感
  • 文件扩展名cpp是一种表示C++程序的常用方式

元素

demo.cpp包含着以下元素

  • 注释,由前缀//标识
  • 预处理器编译指令#include
  • 函数头: int main()
  • 编译指令 using namespace
  • 函数体,用{}括起
  • 使用C++的cout工具显示消息的语句
  • 结束main()函数的return语句

1.main()函数

去掉修饰后,demo.cpp示例程序的基本结构如下

int main()
{
   statements;
   return 0;
}
  • 这几行表明有一个名为main()的函数,并描述了该函数的行为
  • 这几行代码构成了函数定义(function definition)

该定义由两部分组成:

  • 第一行int main称为函数头(function heading)
  • 花括号({})中包括的部分叫函数体
    (图2.1 main函数)
函数头:
  • 对函数和程序其他部分之间的接口进行了总结
    函数体:
  • 是指出函数应该做什么的计算机指令

作为接口的函数头

  1. C++语法要去main()函数的定义以函数头int main()开始
  2. 如果编译器到达main()函数末尾时没有遇到返回语句,则默认main()函数以return 0;语句结束

为什么main()不能使用其他名称

  1. 通常,C++程序必须包含一个名为main()的函数
  2. 在运行C++程序时,通常从main()函数开始执行
在C++中
  • 每条完整的指令都被称为语句
  • 所有的语句都以分号结束

2.注释

  • 注释以双斜杠//打头
  • 注释可以位于单独的一行上,也可以和代码位于同一行
  • 通常用于表示程序的一部分或解释代码的某个方面
  • 也能识别C注释,例如
#include <iostream> /* a C-style comment */

3.预处理器和iostream文件

如果程序要使用C++输入或输出工具,请提供以下代码(如果编译器不接受此代码,说明他不遵守标准C++98)

#include <iostream>
using namespace std;
  • C++和C一样,也使用一个预处理器,该程序在进行主编译之前对源文件进行处理

不必执行任何特殊的操作来调用该预处理器,他会在编译程序的时候自动运行

include编译指令
#include <iostream> 

该编译指令导致预处理器将iostream文件的内容添加进程序中

这是一种典型的预处理器操作:在源代码被编译之前,替换或添加文本

Why

iostream中的io指输入/输出

  • C++的输入/输出方案涉及iostream中的多个定义。
  • 为了使用cout来显示消息,第一个程序需要这些定义
  • #include编译指令让iostream文件的内容和源代码文件一起被发售给编译器
  • 实际上,iostream文件的内容将取代程序中的代码行#include <iostream>
  • 使其组合成一个复合文件,编译的下一阶段将使用该文件

使用cin/cout进行输入和输出的程序必须包含文件iostream

头文件名

  • 类似iostream这样的文件叫做包含文件(include file)或者头文件(header file)
  • C的头文件转换为C++的头文件时,通常会去掉扩展名并在名称前加上c,例如C++版本的math.hcmath
  • 头文件命名规定(表2.1)

名称空间(namespace)

简要介绍

  • 名称空间支持是一项C++特性
  • 旨在让您编写大型程序或将多个厂商现有的代码组合起来的程序时跟容易 他还有助于组织程序
  • 名称空间可以让厂商能够将其产品封装字一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出想使用哪个厂商的产品。
    举例:

(2.1.25)

  • 按照这种方式,类、函数和变量便是C++编译器的标注逐渐,他们现在都被放置在名称空间std

使用cout进行C++输出

demo.cpp使用下面的C++语句


   cout << "Hello World";
  • 双括号括起的地方是要打印的消息
  • 在C++中1,用双括号括起的一系列字符被叫做字符串

因为它是由若干字符组成的

  • <<表示该语句将把这个字符串发送给cout,该符号指定了信息流通的路径

什么是cout? 它是一个预定义的对象,知道如何显示字符串、数字和单个字符等
对象是类的特定实例,而类定义了数据的储存和使用方式

  • cout对象有一个简单的接口,如果string是一个字符串,则下面的代码将显示该字符串
cout  << string;
从概念上解释
  1. 输出是一个流 (即从程序流出来的一系列字符)
  2. cout对象表示这种流,其属性是在iostream文件中定义的
  3. cout的对象属性中包括一个插入运输符<<,他可以将其右侧的信息插入到流中
  4. 因此,与其说程序显示了一条消息,不然说他将一个字符串插入到了控制流中

运算符重载

  • C++扩展了运算符重载的概念,允许为用户定义的类型(类)重新定义运算的含义
1.控制符 endl
  • endl是一个特殊的C++符号
  • 表示概念: 重起一行
  • 例如endl等对于cout来说具有特殊含义的特殊符号被称为控制符
  • endl等也是在头文件iostream中定义的
2.换行符
  • C++提供了一种旧式方法 C语言符号\n
cout << "Hello World!\n";

C++源代码的格式化

  • 在C++中通常可以能使用空格的地方使用回车,但会变的不易阅读
  • 但必须遵守一些规则

    • 不能把空格、制表符或回车放在元素(例如名称)中间
    • 不能把回车放在字符串中间

C++ 11新增的原始(raw)字符串可能包含名称

源代码风格

  • 每条语句占一行
  • 每个函数都有一个开始花括号和一个结束花括号,并各占一行
  • 函数中的语句相对花括号进行缩进
  • 与函数名称相关的花括号周围没有空白

C++语句

  • C++程序是一组函数,而每个函数又是一组语句

// carrots.cpp

# include <iostream>

int main()
{
    using namespace std;

    int carrots;
    carrots = 25;
    cout << " I have ";
    cout << carrots;
    cout << " Carrots. ";
    cout << endl;
    cout << "-1 now I have " << carrots << " carrots. ";
    return 0;
}
声明语句和变量
  • 要将信息项储存在计算机中,必须指出信息的储存位置和所需的内存空间
  • 相对简单的方法,是使用声明语句来指出储存类型并提供位置标签
    例如
int carrots
  • 这条语句提供了需要的内存以及该内存单位的名称
  • 在C++中使用int表示整数(没有小数部分的数字)

    • int是最基本的数据类型 C++的int类型可以为正,也可以为负。但大小范围取决于实现
  • 第二项任务是给储存单元指定名称。在此后,程序将用名称carrots来标识储存在该内存单元里的值。
  • carrots是变量,因为它的值可以被修改
  • 声明通常指出里要储存的数据类型和程序对储存在这里的数据使用的名称

    • 在这个例子中,程序创建了一个名为carrots的变量,它可以储存整数
  • 程序中的声明语句叫做定义声明(defining declaration)语句,简称为定义(defining)。这意味着它将导致编译器为变量分配内存空间
  • 在较为复杂的情况下,还可能有引用说明
  • 通常,声明不一定是定义,但在这个例子中,声明是定义
赋值语句
  • 赋值语句将值赋给储存单元。例如下面的语句将整数25付给变量carrots表示的内存单元
carrots = 25;
  • 其中符号=称为赋值运算符

    • C++和C可以连续使用赋值运算符
      例如
int one
int two
int three
three = one = two = 114514;
  • 可以对对变量值进行修改
carrots = carrots - 1
  • 右边的carrots - 1是一个算数表达式。计算机将carrots的值25减去1,得到24,然后计算机将这个新值储存到变量carrots对应的内存单元中

其他C++语句

// getinfo.cpp
# include <iostream>
int main()
{
    using namespace std;
    
    int carrots;

    cout << "how many carrots do you have" << endl;
    cin >> carrots; // C++ input
    cout << "here are two more";
    carrots = carrots + 2;
    // output
    cout << "now you have " << carrots << " carrots. " << endl;
    return 0;

}
  • 输出表明,从键盘输入的值(12)最终会赋给变量carrots
cin >> carrots
  • iostreamcin定义为表示这种流的对象

    • 输出时 <<运算符将字符串插入到控制流中
    • 输入时 cin使用>>运算符从输入流中抽取字符
  • 通常,需要在运算符右侧提供一个变量,以接受抽取的信息
  • cin是一个智能对象,他可以将通过键盘输入的一系列字符(输入)转换为接受信息变量能够接受的方式

    • 在这个例子中,程序将carrots声明为一个整形变量
最后修改:2021 年 06 月 26 日 02 : 36 PM
如果你喜欢我的文章,不妨赞赏一下。