程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 如何快速有效地找出程序錯誤(C語言篇),找出

如何快速有效地找出程序錯誤(C語言篇),找出

編輯:關於C語言

如何快速有效地找出程序錯誤(C語言篇),找出


       我想大多數剛開始學習C語言的人都和我以前一樣,自己好不容易敲出的程序代碼在調試運行時卻出錯了,而自己卻不知道錯誤出在哪兒,怎麼去修改。多數人的第一反應就是摸不著頭腦了,然後索性根據自己的邏輯去修改代碼,結果反而越改越錯。以下是我總結的一些查找錯誤的方法。

首先查找代碼是否存在邏輯錯誤:

      1.變量使用前未被數值

       實例:

       int main()

  {

    int x=5,y,z;

    z=x*y;

    printf("%d",z);

    return 0;

  }

      在此程序中變量y在使用之前未被賦值,所以結果輸出z的值就會是系統隨機分配一個值給y再加乘以x的值。

      2.把賦值賦值符號“=”與等於符號“==”相混淆

  實例:

    有一下語句:

      if(a=5)

      {

    printf("a等於5");

  }

  這樣一來輸出的結果永遠都是“a等於5”,原因是在執行if(a=5)之時,無論a之前是什麼值,此時都會被重新賦值為5,而不是把a的值與5相比較,而正確的表示比較的表示為:

    if(a==5)

      {

    printf("a等於5");

  }

  3.switch語句中缺少break,do{}while()語句中while()之後缺少“;”等等。

其次首先查找代碼是否存在算法錯誤:

     以交換兩個變量的值得算法為例:

  正確的算法如下:

  int main()

  {

    int a=5,b=10,temp;

    temp=a;

    a=b;

    b=temp;

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

    return 0;

  }

  如果將temp=a;a=b;b=temp;的順序隨意調換就不會實現將a和b的值交換。

最後也是最容易犯的低級錯誤:

比如一條語句結束後忘了打";",輸入語句“scanf("%d",a)”中賦值參數a之前忘了地址符“&”等等。

       我想按照以上的步驟來查找代碼的錯誤會變得快速有效的,不妨試試哦!

      

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved