C++ 基本语法

前面的章节中我们已经安装好了 C++ 开发环境了,现在让我们来学习下 C++ 的基本语法。

C++ 程序的组成元素

C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。 现在让我们简要地看一下什么是类、对象,方法、即时变量

对象
对象具有状态和行为 例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。 对象是类的范例
类可以定义为描述对象行为/状态的模板/蓝图
方法
一个方法表示一种行为。 一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。
即时变量
每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。

C++ 程序结构

我们先来看看之前已经运行过好几次的入门代码

/**
 * file: main.cpp
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <iostream>

using namespace std;

// main() 是程序开始执行的地方
int main()
{
    cout << "Hello, World!" << endl;
    cout << "Hello, 简单教程!" << endl;
    return 0;
}

在这个简单的入门程序中

  1. /* ... */ 是程序多行注释 /* */ 里的内容会被 C++ 编译器忽略。多行注释以 /* 开始, 以 */ 结束。

  2. #include <iostream> 用于加载 iostream头文件 C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息

  3. using namespace std; 则是引入 命名空间 命名空间是 C++ 相较于 C 语言的一个相对新的概念

  4. // main() 是程序开始执行的地方 是一个单行注释 单行注释以 // 开头,在行末结束

  5. int main() 是主函数,程序从这里开始执行

  6. cout << "Hello, World!" << endl; 会在屏幕上显示消息 Hello World

  7. return 0; 终止 main() 函数,并向调用进程返回值 0

编译 和 执行 C++ 程序

接下来我们来看看如何编译运行这段程序代码

  1. 打开一个文本编辑器,复制粘贴上面的代码

  2. 保存文件为 helloworld.cpp

  3. 打开命令提示行(终端),进入到保存文件所在的目录

  4. 输入 g++ helloworld.cpp 然后回车,编译代码。 如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件

  5. 输入 a.out来运行程序

  6. 就可以看到屏幕上显示 Hello, World! Hello, 简单教程!

$ g++ helloworld.cpp
$ ./a.out
Hello, World!
Hello, 简单教程!

请确保您的路径中已包含 g++ 编译器,并确保在包含源文件 helloworld.cpp 的目录中运行它

我们今后的学习中,会把以上的步骤简称为 编译运行程序,输出结果如下 几个字。

分号

在 C++ 中,分号(;) 是一个语句结束符。每个语句必须以分号结束。也表明一个逻辑实体的结束。

例如 下面是三个不同的语句

x = y;
y = y+1;
add(x, y);

代码块

代码块是一组使用 大括号({}) 括起来的按物理逻辑连接的语句

例如

{
    cout << "Hello, World!" << endl;
    cout << "Hello, 简单教程!" << endl;
    return 0;
}

C++ 不以 换行符(\n)作为结束符的标识,所以,可以在一行上放置多个语句。

所以

x = y; y = y+1; add(x, y);

等同于

x = y;
y = y+1;
add(x, y);

C++ 标识符

C++ 标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。

  • 一个标识符必须是

    以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)
    
  • C++ 标识符内不允许出现标点字符,比如 @、$ 和 %。

  • C++ 是区分大小写的编程语言。 因此,在 C++ 中, PiPI 是两个不同的标识符。

下面列出几个有效的标识符

abc   move_name  a_123 myname50   _temp   j     a23b9      retVal

下列几个则是无效的标识符

9mohd   .zara   @j  23a9b

C++ 关键字

下表列出了 C++ 中的保留字。

这些保留字不能作为常量名、变量名或其他标识符名称

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

三字符组

为了代码的兼容性,请不要使用 三字符组

三字符组用于表示另一个字符的三个字符序列,又称为三字符序列。

三字符序列总是以两个问号开头

三字符序列不太常见,但 C++ 标准允许把某些字符指定为三字符序列。 以前为了表示键盘上没有的字符,这是必不可少的一种方法。

三字符序列可以出现在任何地方,包括字符串、字符序列、注释和预处理指令。

下面列出了最常用的三字符序列:

三字符组 替换
??= #
??/ |
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~

如果希望在源程序中有两个连续的问号,且不希望被预处理器替换。这种情况出现在字符常量、字符串字面值或者是程序注释中,可选办法是用字符串的自动连接 "...?""?..." 或者转义序列:"...?\?..."

注意

从 Microsoft Visual C++ 2010 版开始,该编译器默认不再自动替换三字符组。 如果需要使用三字符组替换(如为了兼容古老的软件代码),需要设置编译器命令行选项 /Zc:trigraphs

g++ 仍默认支持三字符组,但会给出编译警告

为了代码的兼容性,请不要使用 三字符组

C++ 中的空格

只包含空格的行,被称为空白行,可能带有注释。

C++ 编译器会完全忽略空白行

在 C++ 中,空格用于描述 空白符制表符换行符注释

空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。

因此,在下面的语句中:

int age;

在这里,int 和 age 之间必须至少有一个空格字符(通常是一个空白符),这样编译器才能够区分它们。

另一方面,在下面的语句中:

isum = num1 + num2 ;

isum=,或者 =num1 之间的空格字符不是必需的,但是为了增强可读性,我们可以根据需要适当增加一些空格。

C++ 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.