C++语言程序设计

news/2025/2/14 3:20:07/

C++语言程序设计


如需转载请标明出处:http://blog.csdn.net/itas109

文章目录

  • C++语言程序设计
    • 1. 语言概述
      • 1.1 字符集合
      • 1.2 词法记号
        • 关键字
        • 标识符
        • 文字
        • 操作符(运算符)
        • 分隔符
        • 空白符
    • 2. 数据类型
      • 2.1 基本数据类型
      • 2.2 常量
        • 整型常量
        • 实型常量
        • 字符常量
        • 字符串常量
        • 布尔常量
      • 2.3 变量
    • 2.4 符号常量
    • 3. 操作符(运算符)和表达式
      • 3.1 算数运算符和算数表达式
      • 3.2 赋值运算符和赋值表达式
      • 3.3 逗号运算符和逗号表达式
      • 3.4 逻辑运算符和逻辑表达式
      • 3.5 条件运算符和条件表达式
      • 3.6 位运算符
    • 4. 语句
      • 4.1 声明语句 Declaration Statement
      • 4.2 表达式语句 Expression Statement
      • 4.3 选择语句 Selection Statement
      • 4.4 迭代语句 Iteration Statement
      • 4.5 跳转语句 Jump Statement
      • 4.6 带标签的语句 Labeled Statement
      • 4.7 异常处理语句 Exception Handling Statement
      • 4.8 复合语句 Compound Statement
      • 4.9 空语句 Empty Statement
    • 5. 自定义数据类型

1. 语言概述

1.1 字符集合

字符集合是构成程序正文的基本元素。

如C++的字符集合由以下字符构成:

字母字符:A~Z,a~z

数字字符:0~9

特殊字符:! # % ^ & * _(下划线) + = - ~ < > / \ ‘ “ ; . , : ? ( ) [ ] { } |

1.2 词法记号

词法记号(token)是最小的词法单元。在C++中词法记号(token)分为关键字、标识符、文字、操作符(运算符)、分隔符和空白符。

int a = 1;

分解为(不包括空白符)

词法记号(token)类别
int关键字
a标识符
=赋值操作符
1数字
;语句结束分隔符

关键字

语言预先声明的记号,如bool if class

标识符

标识符是开发者定义的记号,用于命名程序正文中的一些实体,如变量名、函数名、类名等。C++中标识符由字符、数字和下划线组成,必须以字母或下划线开头,且不能为关键字。

文字

文字是程序中直接使用符号表示的数据,包括数字、字符、字符串和布尔文字,如1 'a' "abc" true

操作符(运算符)

操作符是用于实现各种运算的符号,如+ - * /

分隔符

分隔符用于分隔各个词法记号(token)或程序正文,如 () {} , : ;

空白符

程序编译时在词法分析阶段程序正文会分解为词法记号(token)和空白。 空白符是空格、制表符(TAB键产生的字符)、垂直制表符、换行符、回车符和注释的总称。

2. 数据类型

程序语言的数据类型分为基本数据类型和自定义数据类型。基本数据类型是编译系统内置的。

2.1 基本数据类型

如C++中的基本数据类型

bool
char
signed char
unsigned char
short
unsigned short
int
unsigned int
long
unsigned long
float
double

2.2 常量

整型常量

整数常量:二进制(01)、八进制(0-7)、十进制(0-9)、十六进制(0-9a-fA-F)

实型常量

实数有两种:一般形式和指数形式。
一般形式:1.2
指数形式:0.12E-2

字符常量

单引号括起来的一个字符,如’a’ ‘?’ ‘\n’

字符串常量

"abcd"

布尔常量

true和false

2.3 变量

变量是值可以变量的量。

  • 变量的声明和定义

变量声明语句:

 数据类型  变量名1, 变量名2, ..., 变量名n;

int a,b,c,d;
char c='a'; // 定义变量并赋初值

2.4 符号常量

符号常量是命名的常量。使用符号常量可以提高代码的可读性,

常量声明语句:

const 数据类型  变量名 = 常量;

const double PI = 3.1415926;

3. 操作符(运算符)和表达式

表达式是程序中计算求值的基本单位。

表达式可以理解为计算公式,由操作符(运算符,如+ - * /) 、操作数(运算量,如常量、变量等)和括号组成。如x+y1+2*3等。

单目运算符(一元运算符):只需要一个操作数的运算符,如 +(正号) -(负号)

二目运算符(二元运算符):需要两个操作数的运算符,如 +(加号) -(减号)

C++中的操作符(运算符)

3.1 算数运算符和算数表达式

C++中算数运算符包括基本算数运算符和自增自减运算符。由算数运算符、操作数和括号组成的表达式成为算数表达式。

基本算数运算符包括+(正号或加) -(负号或减) *(乘) /(除) %(取余)

自增自减运算符包括++(自增) --(自减)。根据位置不同可细分为前置自增、后置自增、前置自减和后置自减。

3.2 赋值运算符和赋值表达式

赋值运算符:

=
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
^=

带有赋值运算符的表达式成为赋值表达式。

=(等号)为最基本的赋值运算符。

a=1 表达式值为1
a=b=1 表达式值为1,a,b的值为5
a=(b=1)+(c=2) 表达式值为3,a为3,b为1,c为2

3.3 逗号运算符和逗号表达式

C++中逗号也是运算符

a=1*2,a*3; 等价于 a=1*2; a=a*3; 表达式值为6

3.4 逻辑运算符和逻辑表达式

C++的逻辑运算符包括关系运算符和逻辑运算符。

关系运算符:<(小于) <=(小于或等于)>(大于) >=(大于或等于)==(等于) !=(不等于)

逻辑运算符:!(非) &&(与) ||(或)

a > 1 关系运算符
!a 逻辑运算符

3.5 条件运算符和条件表达式

C++中唯一的三元运算符为条件运算符"?"。

isOK ? "1" : "0"

3.6 位运算符

C++中的位运算符:

& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
>> 右移

4. 语句

程序执行的操作采用语句表达。 常见操作包括声明变量、赋值、调用方法、循环访问集合,以及根据给定条件分支到一个或另一个代码块。

C++的语句包括

4.1 声明语句 Declaration Statement

声明语句引入新的变量或常量。 变量声明可以选择为变量赋值。 在常量声明中必须赋值。

// 变量声明语句 Variable declaration statements
double radius = 2;// 常量声明语句 Constant declaration statement
const double PI = 3.1415926;

4.2 表达式语句 Expression Statement

用于计算值的表达式语句必须在变量中存储该值。

// 表达式语句赋值 Expression statement (assignment)
area = 3.14 * (radius * radius);// 表达式语句(函数调用) Expression statement (method invocation).
printf("");// 表达式语句(new对象) Expression statement (new object creation).
CTest*  pTest = new  CTest();

4.3 选择语句 Selection Statement

选择语句用于根据一个或多个指定条件分支到不同的代码段。关键字 if switch

bool isOK = true;
if(isOK)printf("isOK: %d\n", isOK);
elseprintf("isOK: %d\n", isOK);	
int mode=1;
switch (mode)
{case 1:printf("mode: %d\n", mode);break;default:printf("mode: %d\n", mode);break;}
}

4.4 迭代语句 Iteration Statement

迭代语句用于遍历集合(如数组),或重复执行同一组语句直到满足指定的条件。 关键字 do while for

for (int i = 0; i < 3; i++)
{printf("i: %d\n", i);
}
int n = 0;
do
{printf("n: %d\n", n);n++;
} while (n < 5);
int n = 0;
while (n < 5)
{printf("n: %d\n", n);n++;
}

4.5 跳转语句 Jump Statement

跳转语句将控制转移给另一代码段。 关键字 break continue goto return

for (int i = 0; i < 3; i++)
{if(i == 0)continue;if(i == 1)return;if(i == 1)goto EXIT;if(i == 3)break;
}EXIT:return;

4.6 带标签的语句 Labeled Statement

可以为语句指定一个标签,然后使用 goto关键字跳转到该带标签的语句。

goto EXIT;EXIT:return;

4.7 异常处理语句 Exception Handling Statement

异常处理语句用于从运行时发生的异常情况正常恢复。关键字 throw try-catch try-finally try-catch-finally

#include <iostream>double test(int x, int y) {if (y == 0) {throw "divide by zero";}return (x / y);
}int main()
{try {test(1, 0);}catch (const char* e) {printf("error: %s\n", e);}
}

4.8 复合语句 Compound Statement

复合语句:一对大括号内含有多个语句。

复合语句有自己的作用域,离开作用域后,其中的变量会被销毁。

{int a=1;printf("a: %d\n", a);
}

4.9 空语句 Empty Statement

空语句只含一个分号。 不执行任何操作,可以在需要语句但不需要执行任何操作的地方使用。

while (true); // 空语句

注意:C++中没有赋值语句和函数调用语句,赋值和函数调用功能是通过表达式来实现的。

5. 自定义数据类型

C++中自定义数据类型包括枚举类型(enum)、结构体类型(struct)、联合体类型(union)、数组类型([])、类类型(class)等。


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎

如需转载请标明出处:http://blog.csdn.net/itas109


Reference:
NULL


http://www.ppmy.cn/news/8453.html

相关文章

【Linux】Linux基本指令

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f40c; 个人主页&#xff1a;蜗牛牛啊 &#x1f525; 系列专栏&#xff1a;&#x1f6b2;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0c;厚积而薄发 …

Tic-Tac-Toe可能棋局遍历的实现(python)

目录 1. 前言 2. 算法流程 3. 代码实现 4. 一个思考题&#xff1a;代码实现中的一个坑 5. 结果正确吗&#xff1f; 1. 前言 在上一篇博客中&#xff1a;Tic-Tac-Toe可能棋局搜索的实现&#xff08;python&#xff09;_笨牛慢耕的博客-CSDN博客Tic-Tac-Toe中文常译作井字棋…

01月份图形化一级打卡试题

活动时间 从2023年 1月1日至1月21日&#xff0c;每天一道编程题。 本次打卡的规则如下&#xff1a; &#xff08;1&#xff09;小朋友每天利用10~15分钟做一道编程题&#xff0c;遇到问题就来群内讨论&#xff0c;我来给大家答疑。 &#xff08;2&#xff09;小朋友做完题目后&…

2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜

​ 2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜 备注: 数据来源 :https://pachong.vip/csdn/blogstar,如有侵权,联系秒删~ 博主链接: http://t.csdn.cn/hfFGk http://t.csdn.cn/hfFGk 原力等级9&#xff0c; 我在线秒回&#xff0c;诚信合作 数据统计时间&#xf…

网络原理2 TCP协议

TCP协议 文章目录TCP协议TCP的特点TCP的基本特性确认应答机制超时重传机制丢包连接管理机制TCP建立连接---三次握手TCP断开连接---四次挥手滑动窗口机制丢包问题流量控制机制拥塞控制机制延迟应答机制捎带应答机制面向字节流问题TCP中的异常处理程序崩溃了正常关机突然断电关机…

日志系统:一条SQL更新语句是如何执行的?

前面我们系统了解了一个查询语句的执行流程&#xff0c;并介绍了执行过程中涉及的处理模块。相信你还记得&#xff0c;一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块&#xff0c;最后到达存储引擎。 那么&#xff0c;一条更新语句的执行流程又是…

【博客568】mysql主备 + keepalived vip的高可用架构

mysql主备 vip的高可用架构 适用场景 初始化mysql集群主备&#xff0c;双库均为空库 mysql基本配置 # 准备目录 mkdir -p /data/mysql/conf.d mkdir -p /data/mysql/data# 准备配置文件 /data/mysql/conf.d/my.cnf# 主库&#xff1a; [mysqld] ## 设置server_id&#xff0c;…

Flink系列Table API和SQL之:创建表环境和创建表

Flink系列Table API和SQL之&#xff1a;创建表环境和创建表一、快速上手Table API和SQL二、创建表环境三、创建表1.连接器表(Connector Tables)2.虚拟表(Virtual Tables)一、快速上手Table API和SQL 创建表环境 TableEnvironment tableEnv ...;创建输入表&#xff0c;连接外…