C語言中break與continue的區別

才智咖 人氣:2.97W

break 關鍵字很重要,表示終止本層迴圈。現在這個例子只有一層迴圈,當程式碼執行到break 時,迴圈便終止。

C語言中break與continue的區別

如果把break 換成continue 會是什麼樣子呢?continue 表示終止本次(本輪)迴圈。當代碼執行到continue 時,本輪迴圈終止,進入下一輪迴圈。

while(1)也有寫成while(true) 或者while(1==1) 或者while((bool) 1)等形式的,效果一樣。

do-while 迴圈:先執行do 後面的程式碼,然後再判斷while 後面括號裡的`值,如果為真,迴圈開始;否則,迴圈不開始。其用法與while 迴圈沒有區別,但相對較少用。

for 迴圈:for 迴圈可以很容易的控制迴圈次數,多用於事先知道迴圈次數的情況下。
拓展:
  我有一個char * 型指標正巧指向一些int 型變數, 我想跳過它們。 為什麼如下的程式碼((int *)p)++; 不行?

在C 語言中, 型別轉換意味著“把這些二進位制位看作另一種型別, 並作相應的對待”; 這是一個轉換操作符, 根據定義它只能生成一個右值(rvalue)。而右值既不能賦值, 也不能用++ 自增。(如果編譯器支援這樣的擴充套件, 那要麼是一個錯誤, 要麼是有意作出的非標準擴充套件。) 要達到你的目的可以用:p = (char *)((int *)p + 1);

或者,因為p 是char * 型, 直接用p += sizeof(int);

但是, 在可能的情況下, 你還是應該首先選擇適當的指標型別, 而不是一味地試圖李代桃僵。