C语言中常犯的错误(一)
程序出错有三大类:语法错误、逻辑错误和运行错误
对于语法错误,编译器会给出精确到行的提示;逻辑错误则需要在流程图的辅助下,重点关注留意花括号,进行判定;而运行错误则是指程序在接收到某些数据时因为处理不当,如数组a[n]中输入了第n+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"(只读)的打开方式,而后面又对它进行了写操作。虽然编译器没报错,但是写操作都是无效的,所以写操作都是无效的,打开方式与使用方式不匹配。
- 对结构体类型直接赋值,没有初始化结构体变量:
#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语言中常犯的错误(一)相关推荐
- 网站设计中常犯的错误
平面 | 包装 | 广告 | 环艺 | 工业 | 网页 | 服装 | 数码 | 摄影 | 绘画 | 人才 | 论坛 | 沙龙 | 字体 首页 网页资讯 网页作品 酷站欣赏 设计文章 网页沙龙 我的空间 ...
- C语言新手常犯的错误-截断
截断往往发生在复制过程中 准确地说,是将占用字节数较多的变量赋值给占用字节数较少的变量时,如j将long(16个字节)赋值给char(1个字节)时,这时候long类型的变量只将最低的一位赋给了char ...
- c语言中经常犯的错误
1.切忌将函数的参数作为数组定义时的长度 例如 f(int x){ a[x]; }
- 误区:思维中常犯的6个基本错误
原书名:Don'tBelieveEverythingYouThink:The6BasicMistakesWeMakeinThinking 中文书名:误区:思维中常犯的6个基本错误 作者:ThomasE ...
- 《小乌龟投资智慧:如何在投资中以弱胜强》书中的精髓:认清投资中常犯的错误,开启智慧投资之路。
<小乌龟投资智慧:如何在投资中以弱胜强>书中的精髓:认清投资中常犯的错误,开启智慧投资之路. 如今,投资理财已经成为了一个绕不开的话题,我们一边想着通过投资赶超通货膨胀率,不要让自己辛苦攒 ...
- java list top_Java程序员最常犯的错误盘点之Top 10
原标题:Java程序员最常犯的错误盘点之Top 10 人非圣贤,孰能无过.都说Java语言是一门简单的编程语言,基于C++演化而来,剔除了很多C++中的复杂特性,但这并不能保证Java程序员不会犯错. ...
- 十个Python初学者常犯的错误
下面10个Python初学者常犯的错误,并不是真正的代码错误,代码照样可以运行,但是不够Pythonic,因为Python有自己的语言哲学,在代码的处理上有传统语言无法比拟的简洁性和便捷性. 1. ...
- javascript中易犯的错误有哪些
javascript中易犯的错误有哪些 一.总结 一句话总结: 比如循环中函数的使用 函数中this的指向谁(函数中this的使用) 变量的作用域 1.this.timer = setTimeout( ...
- 三层开发中容易犯的错误
http://www.cnblogs.com/yukaizhao/archive/2007/03/08/layer_develop_errors.html 三层开发中容易犯的错误 前记: 相信大家对三 ...
最新文章
- R语言笔记-sample()函数
- QT的QStatusBar类的使用
- 搜索引擎索引之索引基础
- java二叉树的实现_二叉树的实现(Java语言描述)
- Linux命令行中的特殊符号_特殊字符
- 微信WeixinJSBridge API
- 大咖说中台 | 建设数据中台系列(五)——中台架构详解(下)
- 快速配置 Samba
- (三)cmockery中的消息打印以及可变参数相关总结
- Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
- WEB页面自打开的响应顺序
- 基于java人脸识别考勤签到系统设计与实现毕业设计毕设作品
- 清华小学上册计算机教学案例,创新型教学案例.doc
- win7查看隐藏文件夹
- [半闲之人] 关于SteamVR摄像机和普通摄像机冲突的解决办法
- 点积与叉乘的运算与物理意义
- 高考,高中毕业之后,这人世间,又多了一只闲云野鹤
- linux博通2070蓝牙驱动,Broadcom博通BCM 2070/20702系列蓝牙设备驱动怎么样
- 移动互联网繁荣本质是什么
- mac文件无操作权限,mac提示您没有权限来打开文稿,请联系您的电脑或网络管理员