一、其他赋值运算符
除了最基本的赋值运算符=,C还有多个赋值运算符
| a += b | 等于 | a = a + b |
| a -= b | 等于 | a = a - b |
| a *= b | 等于 | a = a * b |
| a /= b | 等于 | a = a / b |
| a %= b | 等于 | a = a % b |
这些赋值运算符的优先级与赋值运算符=同样低
运算符优先级:赋值运算符 < 关系运算符 < 算术运算符
二、逗号运算符
逗号运算符最常在for循环中使用,可以在一个for循环中使用多个初始化或更新表达式,扩展for循环的灵活性
示例代码:
#include <stdio.h>
int main(void)
{
int a;
int b;
for(a = 0, b = 10; a < 10; a++, b += a)
{
printf("%10d %10d \n", a, b);
}
return 0;
}
运行结果:

逗号运算符的属性:
1)被其分开的表达式按照从左到右的次序进行计算,逗号是个顺序点,逗号左边产生的副作用在程序运行到逗号右边之前生效
2)整个逗号表达式的值是右边成员的值
示例代码:
#include <stdio.h>
int main(void)
{
int a;
int b;
int c;
for(a = 0, b = 10; a < 10; a++, b += a)
{
c = (a++, b += a); // 逗号运算符
printf("%10d %10d %10d\n", a, b, c);
}
return 0;
}
运行结果:

示例代码:
#include <stdio.h>
int main(void)
{
int a = (1, 2);
printf("the value of a is %d \n", a);
}
运行结果:

逗号也可被用于分隔符,此时逗号不再是运算符:
int a, b; // 逗号作为分隔符
逗号运算符把两个表达式链接为一个表达式,并保证最左边的表达式最先计算,通常被用在for循环的控制表达式中以包含多个信息,整个表达式是右边表达式的值
三、退出条件循环:do while
while循环和for循环为入口条件循环,在每次执行循环前检查判断条件
do while循环为退出条件循环,判断条件在执行循环后进行检查
do while循环的一般形式:
do
statement // statement可以是简单语句或复合语句
while(expression); // do while循环本身是一个语句,因此结束时需要分号
do while循环至少会被执行一次,因为在循环体结束后才进行判断
示例代码:
#include <stdio.h>
int main(void)
{
int i = 1;
int j = 1;
while(i < 1)
{
i++;
}
do
{
j++;
} while (j < 1);
printf("the value of i is %d \n", i);
printf("the value of j is %d \n", j);
return 0;
}
运行结果:

注意:应该把do while循环仅用于那些至少需要执行一次循环的情况,否则应使用while循环或for 循环
四、循环的选择
1)首先分析确定使用入口条件循环或退出条件循环,整体上入口条件循环更适合大多数应用需求
2)对于入口条件循环,根据个人喜好选择while循环或for循环,二者可以实现的功能是相同的















![移动Web【空间转换[空间位移、透视、空间旋转、立体呈现、3D导航、空间缩放]、动画、综合案例】](https://img-blog.csdnimg.cn/801a522e3c5c46b996b659934d9665af.png)


