<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    初學C語言編程常常會犯的錯誤

    • 發布:C++培訓
    • 來源:學習筆記
    • 時間:2017-07-19 14:03

    眾所周知,C語言具有簡潔緊湊,靈活方便,運算符豐富,數據類型豐富,表達方式靈活實用等特點,所以C語言程序設計更主動、靈活。它語法限制不太嚴格,程序設計自由度大,如對整型量與字符型數據及邏輯型數據可以通用等。

    但是事物都有兩面性,正是因為這個靈活給程序的調試帶來了許多不便,尤其對初學C語言的人來說,經常會出一些連自己都不知道錯在哪里的錯誤。看著有錯的程序,不知該如何下手,從哪里改起。這里羅列了一些C編程時常犯的錯誤,方便初學的小伙伴可以有個參考,做到心中有數,不至于毫無頭緒。

    1.書寫標識符時,忽略了大小寫字母的區別。

    main()

    {

    int a=5;

    printf("%d",A);

    }

    編譯程序把a和A認為是兩個不同的變量名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字符。習慣上,符號常量名用大寫,變量名用小寫表示,以增加可讀性。

    2.忽略了變量的類型,進行了不合法的運算。

    main()

    {

    float a,b;

    printf("%d",a%b);

    }

    %是求余運算,得到a/b的整余數。整型變量a和b可以進行求余運算,而實型變量則不允許進行“求余”運算。

    3.將字符常量與字符串常量混淆。

    char c;

    c="a";

    在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規定以“\”作字符串結束標志,它是由系統自動加上的,所以字符串“a”實際上包含兩個字符:‘a'和‘\',而把它賦給一個字符變量是不行的。

    4.忽略了“=”與“==”的區別。

    在許多高級語言中,用“=”符號作為關系運算符“等于”。如在BASIC程序中可以寫

    if (a=3) then …

    但C語言中,“=”是賦值運算符,“==”是關系運算符。如:

    if (a==3) a=b;

    前者是進行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習慣問題,初學者往往會犯這樣的錯誤。

    5.忘記加分號。

    分號是C語句中不可缺少的一部分,語句末尾必須有分號。

    a=1

    b=2

    編譯時,編譯程序在“a=1”后面沒發現分號,就把下一行“b=2”也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。

    { z=x+y;

    t=z/100;

    printf("%f",t);

    }

    對于復合語句來說,最后一個語句中最后的分號不能忽略不寫(這是和PASCAL不同的)。

    6.多加分號。

    對于一個復合語句,如:

    { z=x+y;

    t=z/100;

    printf("%f",t);

    };

    復合語句的花括號后不應再加分號,否則將會畫蛇添足。

    又如:

    if (a%3==0);

    I++;

    本是如果3整除a,則I加1。但由于if (a%3==0)后多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。

    再如:

    for (I=0;I<5;I++);

    {scanf("%d",&x);

    printf("%d",x);}

    本意是先后輸入5個數,每輸入一個數后再將它輸出。由于for()后多加了一個分號,使循環體變為空語句,此時只能輸入一個數并輸出它。

    7.輸入變量時忘記加地址運算符“&”。

    int a,b;

    scanf("%d%d",a,b);

    這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。“&a”指a在內存中的地址。

    8.輸入數據的方式與要求不符。

    ①scanf("%d%d",&a,&b);

    輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:

    3,4

    學習C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學習知識的重要方法,就是說,學習后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是初學的小伙伴最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反復,才能前后貫穿,積累應該掌握的C知識。同時不要忘記上機實踐,希望熱愛編程的小伙伴可以早日成為大神~

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:C語言二級考試分數構成與攻略,高分必備
    下一篇:C++ 17相比于C++ 14的所有重大變化

    C語言創建windows窗口實例

    C++回調函數是什么?

    C++ shared_ptr和動態數組

    C語言有哪些關鍵詞,C語言44個關鍵詞大全

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>