• 如何快速有效地找出程序错误(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之前忘了地址符“&”等等。

           我想按照以上的步骤来查找代码的错误会变得快速有效的,不妨试试哦!

          

  • 相关阅读:
    SQL中with(nolock)作用说明
    GridView应用随笔
    Repeater和Gridview前台显示行号的方法
    JQuery实现Ajax跨域访问--Jsonp原理
    Windows 2012 R2设置同一用户同时多点远程系统
    MySql项目中使用的小窍门
    Extjs关于combobox的二三事
    extjs 验证随手记录
    Extjs关于grid 行变色
    关于在ASP.NET MVC 中使用EF的Code First的方式来读取数据库时的Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
  • 原文地址:https://www.cnblogs.com/lykblog/p/4438809.html
Copyright © 2020-2023  润新知