C語言複習

C語言複習

變量與零值比較

布爾變量與零值比較

1.不可將布爾變量直接與TRUE,FALSE或者1,0進行比較。

下面代碼都是不良風格
if(flag == true)
if(flag == 1)
if(flag == false)
if(flag ==0)

整型變量與零值比較

1.應當將整型變量用 “==”或“!=” 直接與0比較

浮點變量與零值比較

1.不可以將浮點變量用”==”或“!=”與任何數字比較

if(x == 0.0) //錯誤的!!

正確寫法:
if((x>=-EPSINON)&&(x<=EPSINON))
其中EPSINON是允許的(即精度)

指針變量與零值比較

1.應當將指針變量用”==”或“!=”與NULL比較。

if(p == NULL)
if(p != NULL) //p與NULL顯示比較,強調p是指針變量
不要寫成:
if( p == 0)
if(p != 0) //容易讓人誤解p是整型變量
或者:
if(p)
if(!p)  //容易讓人誤解p是布爾變量

switch語句

switch(表達式)
    語句

注意: 表達式的結果必須是整型值!!!
如果在switch語句的執行中遇到了break語句,執行流就會立即跳轉到語句列表的末尾。

int main()
{   
int n = 1;
int m = 2;
switch (n)
{
case 1:
    m++;
case 2:
    n++;
case 3:
    switch (n)
    {//switch允許嵌套使⽤
    case 1:
        n++;
    case 2:
        m++;
        n++;
        break;
    }
case 4:
    m++;
    break;
default:
    break;
}
printf("n = %d, m = %d\n", n, m);
system("pause");
return 0;

}

結果:n = 3, m = 5;

循環

while循環

1.break用於永久終止循環
2.continue用於終止當前的那次循環,
注意:這兩條語句的任何一條如果出現於嵌套循環的內部,他只對最內層的循環其作用,不會影響外層循環的執行。

for循環

1.不可以在for循環體內修改循環變量,放置for循環失去控制。
2.建議for語句的循環控制變量的取值採取“半開半閉區間”寫法。

A:    for(int x=0;x<N;x++)
    {
        ...
    }
B:     for(int x=0;x<=N-1;x++)
    {
        .....
    }

與 B相比,A的寫法更加直觀。
閱讀下面小程序,循環執行了多少次??

for(i = 0, k= -1;k=0;i++,k++)
    k++;

答案:0次。

for(i = 0, k= -1;k=1;i++,k++)
    k++;

答案:無線循環
練習:編寫代碼,演⽰多個字符從兩端移動,向中間匯聚

    void Test()
{
    char buf[80] = "################";
    char src[] = "Hello everyone!!";
    int i, j;
    printf("%s\n", buf);
    for (i = 0, j = strlen(src) - 1; i <= j; i++, j--)
    {
        buf[i] = src[i];
        buf[j] = src[j];
        Sleep(1000);
        printf("%s\n", buf);
    }
}

這裏寫圖片描述

發佈了103 篇原創文章 · 獲贊 53 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章