程序出错有三大类:语法错误、逻辑错误和运行错误

对于语法错误,编译器会给出精确到行的提示;逻辑错误则需要在流程图的辅助下,重点关注留意花括号,进行判定;而运行错误则是指程序在接收到某些数据时因为处理不当,如数组a[n]中输入了第n+1个元素,导致程序在运行过程中出现错误。
今天我们主要探讨以下几个错误:

  1. 使用文件时打开方式不正确:
#include <stdio.h>
#include <cstdlib>
main()
{FILE *fp;if((fp = fopen("D:\\lyy\\test.txt","r"))==NULL){printf("Cannot open the file!\n");exit(0);}char ch = fgetc(fp);while(ch != '\0'){ch = ch + 1;fputc(ch,fp);}
}

在此段代码中,对文件采取了"r"(只读)的打开方式,而后面又对它进行了写操作。虽然编译器没报错,但是写操作都是无效的,所以写操作都是无效的,打开方式与使用方式不匹配。

  1. 对结构体类型直接赋值,没有初始化结构体变量:
#include <stdio.h>struct student{int stu_num;char gender;int age;
};main()
{student.age = 20;} 
11   9   D:\lyy\对结构体类型赋值.cpp [Error] expected unqualified-id before '.' token

程序报错,’.'符号的前面有一个未被允许的id。那么我们应该如何修改呢?请看如下代码:

 struct student stu1;stu1.age = 20;printf("%d",stu1.age);

这个时候我们输出一下,可以看到结果为:

20
--------------------------------
Process exited after 0.06381 seconds with return value 0
请按任意键继续. . .

需要注意的是,输出的时候一定不能漏了stu!后面的".age",否则就能从下图看出结果:

printf("%d",stu1);
4199318

这么大的一串数字,显然不是我们想要的结果,出错原因就在于它少了一个".age"。

参考资料:

[1] 谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005

C语言中常犯的错误(一)相关推荐

  1. 网站设计中常犯的错误

    平面 | 包装 | 广告 | 环艺 | 工业 | 网页 | 服装 | 数码 | 摄影 | 绘画 | 人才 | 论坛 | 沙龙 | 字体 首页 网页资讯 网页作品 酷站欣赏 设计文章 网页沙龙 我的空间 ...

  2. C语言新手常犯的错误-截断

    截断往往发生在复制过程中 准确地说,是将占用字节数较多的变量赋值给占用字节数较少的变量时,如j将long(16个字节)赋值给char(1个字节)时,这时候long类型的变量只将最低的一位赋给了char ...

  3. c语言中经常犯的错误

    1.切忌将函数的参数作为数组定义时的长度 例如 f(int x){ a[x]; }

  4. 误区:思维中常犯的6个基本错误

    原书名:Don'tBelieveEverythingYouThink:The6BasicMistakesWeMakeinThinking 中文书名:误区:思维中常犯的6个基本错误 作者:ThomasE ...

  5. 《小乌龟投资智慧:如何在投资中以弱胜强》书中的精髓:认清投资中常犯的错误,开启智慧投资之路。

    <小乌龟投资智慧:如何在投资中以弱胜强>书中的精髓:认清投资中常犯的错误,开启智慧投资之路. 如今,投资理财已经成为了一个绕不开的话题,我们一边想着通过投资赶超通货膨胀率,不要让自己辛苦攒 ...

  6. java list top_Java程序员最常犯的错误盘点之Top 10

    原标题:Java程序员最常犯的错误盘点之Top 10 人非圣贤,孰能无过.都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错. ...

  7. 十个Python初学者常犯的错误

    下面10个Python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够Pythonic,因为Python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性. 1.   ...

  8. javascript中易犯的错误有哪些

    javascript中易犯的错误有哪些 一.总结 一句话总结: 比如循环中函数的使用 函数中this的指向谁(函数中this的使用) 变量的作用域 1.this.timer = setTimeout( ...

  9. 三层开发中容易犯的错误

    http://www.cnblogs.com/yukaizhao/archive/2007/03/08/layer_develop_errors.html 三层开发中容易犯的错误 前记: 相信大家对三 ...

最新文章

  1. R语言笔记-sample()函数
  2. QT的QStatusBar类的使用
  3. 搜索引擎索引之索引基础
  4. java二叉树的实现_二叉树的实现(Java语言描述)
  5. Linux命令行中的特殊符号_特殊字符
  6. 微信WeixinJSBridge API
  7. 大咖说中台 | 建设数据中台系列(五)——中台架构详解(下)
  8. 快速配置 Samba
  9. (三)cmockery中的消息打印以及可变参数相关总结
  10. Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
  11. WEB页面自打开的响应顺序
  12. 基于java人脸识别考勤签到系统设计与实现毕业设计毕设作品
  13. 清华小学上册计算机教学案例,创新型教学案例.doc
  14. win7查看隐藏文件夹
  15. [半闲之人] 关于SteamVR摄像机和普通摄像机冲突的解决办法
  16. 点积与叉乘的运算与物理意义
  17. 高考,高中毕业之后,这人世间,又多了一只闲云野鹤
  18. linux博通2070蓝牙驱动,Broadcom博通BCM 2070/20702系列蓝牙设备驱动怎么样
  19. 移动互联网繁荣本质是什么
  20. mac文件无操作权限,mac提示您没有权限来打开文稿,请联系您的电脑或网络管理员

热门文章

  1. pyqt5线程的启动,暂停,恢复与停止
  2. python+django+vue的体育用品商城多商家
  3. 工程项目管理与国际惯例接轨的几点思考(转)
  4. linux mint 图标主题_给小白的Linux Mint Xfce扁平化美化攻略
  5. 高考数学填空题各种题型的解题技巧总结
  6. 深度学习:Windows7_64位 安装 TensorFlow(CPU版本)及常见问题
  7. 固态硬盘寿命计算公式
  8. 餐饮店点餐小程序开发怎么做
  9. 分节符导致 Word 中的一个意外的分页符
  10. CSS 文字 居中布局