C語言初學(六)

#include<stdio.h>
//nogood.c -- 有錯誤的程序
int main(void)
( //錯誤1應用花括號,而不是圓括號
    int n, int n2, int n3;//錯誤2使用太多int符號,正確爲int n,2n,3n;或

                                                                                     int n;

                                                                                     int 2n;

                                                                                     int 3n;
        n = 5;
        n2 = n * n;
        n3 = n2 * n2;
        printf("n=%d,n squared=%d,n cubed=%d\n"n, n2, n3);
    return 0;
)


C語言語法錯誤是指:把有效的符號放錯位置。

在調試期間可以快速查看出明顯的錯誤,並且編譯器會幫助你標明錯誤位置(編譯器經常會比真正錯誤的地方滯後一行,認真查看)但是編譯器也會出差,比如某個隱藏語句干預編譯器判斷。有時雖然報錯狠多,但往往修復前幾個就會解決問題,修改時儘量從上到下修改程序。



 #include<stdio.h>
//stillbad.c -- 修復語法錯誤的程序
int main(void)
{
    int n, n2, n3;
    n = 5;
    n2 = n * n;
    n3 = n2 * 2n;
        printf("n=%d,n squared=%d,n cubed=%d\n", n, n2, n3);
    return 0;
}


C語言語義錯誤是指:打印在屏幕上的意思與自己想象的不符,但是代碼卻沒有錯誤,計算機可以識別

此程序最終打印的結果是:n=5,n2=25,n3=625。如果對立方熟悉的話,最後一個等數就是不對的,因爲開發者對n3是要表達n的3次方,可是最終的結果是n的4次方。這時計算機識別代碼正確,卻與開發者的想法不一致=。這樣需要學習一下系統的學習程序狀態。

1.想象有3個盒子分別代表n,n2,n3,將第一個數值5賦給n,接着n與n相乘,等於數值25,將25賦予n2,這樣用25*25(
n2與n2相乘)等於數值625,將625賦予n3。這樣就可以看出計算機是用n2*n2來計算 ,而不是n2*n。這個辦法雖然明朗,但是對於大數額的數字無法進行。

2.在關鍵點加入函數print()語句,以便查看變量值的變化與執行情況,從而確定能否運行,如果可以在刪除此函數語句。

3.使用調試器,這個學習調試器即可。


學:C primer Plus(第六版)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章