-
for循环的组成部分
a. 设置初始值
b. 执行测试,判断循环是否应当继续进行;(可以使用任意表达式,c++将把结果强制转换为bool类型,0为false,非0为true)
c. 执行循环操作
d. 更新用于测试的值 -
C++的常用方式是,在for和括号之间加上一个空格,但函数名和括号之间的空格会被省略
-
通常情况下cout显示bool值之前将他们转换为int(0,1),使用cout.setf(ios_base::boolalpha)函数会调用设置一个标记,该标记命令cout显示true和false,而不是1和0
-
使用for循环实现阶乘
# include
const int ArSize = 16; int main() { long long factorials[ArSize]; factorials[1] = factorials[0] = 1; for(int i = 2; i < ArSize; i++) factorials[i] = i * factorials[i-1]; return 0; } -
递增运算符(++)和递减运算符(–)
a. 前缀版本(++x):将x的值加1,然后使用新的值计算表达式
b. 后缀版本(x++):使用x的当前值计算表达式,然后将x的值加1
c. 不要在同一条语句对同一个值递增或递减多次
d. 对于用户定义的类型,前缀类型和后缀类型的执行速度有细微的差别(内置类型不会有差别):
i. 前缀:将值加1,然后返回结果
ii. 后缀:首先复制一个副本,将其加1,然后将复制的版本返回 -
递增/递减运算符和指针
a. 前缀递增、前缀递减和解除引用运算符的优先级相同,以从右到左的方式进行结合
b. 后缀递增、后缀递减的优先级相同,但比前缀运算符的优先级更高,以从左到右的方式进行结合double arr[5] = {21.1; 32.8, 23.4, 45.2, 37.4}; double *pt = arr; ++ pt; //pt指向arr[1] double x = *++pt; //x=23.4; ++*pt; //先取pt指向的值,然后将这个值加1,24.4 (*pt)++; // pt指向arr[2],值为24.4,然后运算符++将这个值递增到25.4 x = *pt++; //x=25.4,但执行完该语句后,pt将指向arr[3]



