Lazy loaded image
考研
C++ 学习笔记——三、循环和关系表达式
字数 1162阅读时长≈ 3 分钟
2026-10-15
2026-10-15

目录:点我

一、++ 运算符

在运行效率方面,前缀格式将值加 1 ,然后返回结果;后缀格式需要先复制一个副本,然后将原始值加 1 ,再返回副本。
对于指针来说,前缀操作与解除引用符的优先级相同,采取从右往左结合的方式:*++pt 表示指针 pt 先递增,然后再解除引用;++*pt 表示先对指针接触引用,然后再将取得的值递增。后缀操作的优先级比前缀操作高,采取从左往右的结合方式:(*pt)++ 表示先对指针解除引用,然后将取得的值递增;*pt++ 表示指针 pt 先递增,然后再解除引用,然而后缀运算符返回值是未递增的原始副本,因此接触引用的指针仍是未递增的 pt ,但是真实的 pt 已经递增,在后续使用中需要注意。

二、逗号表达式

可用于在单个关系表达式中需要对多个表达式进行处理的情况,举个栗子:
此处i++, j--就是应用了逗号表达式,在一条语句中处理了多个关系。 逗号表达式还提供同步措施,可以使后面的表达式一定在前面的表达式之后执行,例如:
该表达式限定了两条语句的执行顺序,保证安全。 特别注意,逗号表达式的优先级是所有表达式中最低的。

三、延时控制

1. 循环延时

早期的延时程序通常使用循环来进行处理,结果导致该程序在运算较快的计算机中延时效果有限,程序举例:

2. 时钟延时

头文件:ctime,当前时间:clock(),返回类型别名:clock_t 常量:CLOCKS_PER_SEC,表示每秒钟包含的系统时间单位数,因此:
  • 秒数 = 系统时间 / CLOCKS_PER_SEC
  • 以系统时间为单位的单位时间 = CLOCKS_PER_SEC * 秒数
程序示例:

四、别名

1. #define

定义方法:#define aliasName typeName,注意此处不需要封号。 该定义方法的原理是在编译时先将所有的BYTE替换为char,因此不能用于较为复杂的程序,否则会出现错误,举个栗子:

2. typedef

定义方法:typedef typeName aliasName;,注意此处需要封号。 该定义方法的原理是为目标变量建立一个别名,而不是在编译前替换相应的程序,因此建议使用typedef。 # 五、基于范围的for循环(C++11) 类似于Python中的循环方式,不需要人工定义循环次数,而是根据循环主体的范围进行判断,常用于数组、容器等,举个栗子:

六、符号判断

1. 字符函数库:cctype

特别注意返回值均为int,而不是bool

2. 常用函数

  • isalpha(ch):判断是否为字母
  • isdigits(ch):判断是否为数字
  • isspace(ch):判断是否为空白,即空格、换行符、制表符
  • ispunct(ch):判断是否为标点符号
  • isalnum(ch):判断是否为字母或数字
  • iscntrl(ch):判断是控制字符
  • isdigit(ch):判断是否为0~9的数字
  • isgraph(ch):判断是否为除空格以外的可打印字符
  • isprint(ch):判断是否为可打印字符(包括空格)
  • islower(ch):判断是否为小写字母
  • isupper(ch):判断是否为大写字母
  • isxdigit(ch):判断是否为十六进制数
  • tolower:将字符中大写字母转换为小写字母并返回
  • toupper:将字符中小写字母转换为大写字母并返回
原创存证 · 本地哈希 · 584ad94baa13...
算法:SHA-256
时间:2026-10-15
哈希:584ad94baa13392a51d33d5adda79776e3815aed800aa75e73d663a6b8315bfa

该信息用于辅助证明当前内容版本,不等同于法律公证或版权登记。


评论
Loading...