表达式

一、逗号表达式

可用于在单个关系表达式中需要对多个表达式进行处理的情况,举个栗子:

for (int i = 0, j = 10; true; i++, j--){......}

此处i++, j--就是应用了逗号表达式,在一条语句中处理了多个关系。
逗号表达式还提供同步措施,可以使后面的表达式一定在前面的表达式之后执行,例如:

i = 10, j = i * 2;

该表达式限定了两条语句的执行顺序,保证安全。
特别注意,逗号表达式的优先级是所有表达式中最低的。

二、延时控制

1. 循环延时

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

int wait = 0;
while(wait < 10000)
	wait++;

2. 时钟延时

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

  • 秒数 = 系统时间 / CLOCKS_PER_SEC
  • 以系统时间为单位的单位时间 = CLOCKS_PER_SEC * 秒数

程序示例:

float secs = 10.0;
clock_t delay = secs * CLOCKS_PER_SEC; // 系统的单位时间为单位,而不是以秒为单位
clock_t start = clock();
while(clock() - start < delay ) ;

三、别名

1. #define

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

#define FLOAT_POINTER float *
FLOAT_POINTER pa, pb;
//------预处理后的代码如下------//
float * pa, pb; // *pb的定义错误,与预期不符

2. typedef

定义方法:typedef typeName aliasName;,注意此处需要封号。
该定义方法的原理是为目标变量建立一个别名,而不是在编译前替换相应的程序,因此建议使用typedef

四、基于范围的for循环(C++11)

类似于Python中的循环方式,不需要人工定义循环次数,而是根据循环主体的范围进行判断,常用于数组、容器等,举个栗子:

int example = {1, 2, 3, 4, 5};
for (int i : example) // 新变量 i 访问数组
	cout << i << endl;
	
//------若要改变数组的值,则需要引用------//
int example = {1, 2, 3, 4, 5};
for (int &i : example) // 新变量 i 访问数组
	i++;

五、符号判断

1. 字符函数库:cctype

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

2. 常用函数:

  1. isalpha(ch):判断是否为字母
  2. isdigits(ch):判断是否为数字
  3. isspace(ch):判断是否为空白,即空格、换行符、制表符
  4. ispunct(ch):判断是否为标点符号
  5. isalnum(ch):判断是否为字母或数字
  6. iscntrl(ch):判断是控制字符
  7. isdigit(ch):判断是否为0~9的数字
  8. isgraph(ch):判断是否为除空格以外的可打印字符
  9. isprint(ch):判断是否为可打印字符(包括空格)
  10. islower(ch):判断是否为小写字母
  11. isupper(ch):判断是否为大写字母
  12. isxdigit(ch):判断是否为十六进制数
  13. tolower:将字符中大写字母转换为小写字母并返回
  14. toupper:将字符中小写字母转换为大写字母并返回
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页