break 关键字很重要,表示终止本层循环,
如果把break 换成continue 会是什么样子呢?continue 表示终止本次(本轮)循环。当代码执行到continue 时,本轮循环终止,进入下一轮循环。
while(1)也有写成while(true) 或者while(1==1) 或者while((bool) 1)等形式的,效果一样。
do-while 循环:先执行do 后面的代码,然后再判断while 后面括号里的值,如果为真,循环开始;否则,循环不开始。其用法与while 循环没有区别,但相对较少用。
for 循环:for 循环可以很容易的控制循环次数,多用于事先知道循环次数的情况下,C语言中break与continue的区别》(https://www.unjs.com)。
拓展:
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
在C 语言中, 类型转换意味着“把这些二进制位看作另一种类型, 并作相应的对待”; 这是一个转换操作符, 根据定义它只能生成一个右值(rvalue)。而右值既不能赋值, 也不能用++ 自增。(如果编译器支持这样的扩展, 那要么是一个错误, 要么是有意作出的非标准扩展。) 要达到你的'目的可以用:p = (char *)((int *)p + 1);
或者,因为p 是char * 型, 直接用p += sizeof(int);
但是, 在可能的情况下, 你还是应该首先选择适当的指针类型, 而不是一味地试图李代桃僵。