知道编译时有时候会显示类型不匹配
但是运行时也会出现类型方面的错误吗
1. 路径名错误。在MS-DOS中, 斜杠(\)表示一个目录名; 而在Turbo C 中斜 杠是个某个字符串的一个转义字符, 这样, 在用Turbo C 字符串给出一个路径名 时应考虑"\"的转义的作用。例如, 有这样一条语句:
file=fopen("c:\new\tbc.dat", "rb");
目的是打开C盘中NEW目录中的TBC.DAT文件, 但做不到。这里"\"后面紧接的分别 是"n"及"t", "\n"及"\t"将被分别编译为换行及tab字符, DOS将认为它是不正确
的文件名而拒绝接受, 因为文件名中不能和换行或tab字符。正确的写法应为:
file=fopen("c:\\new\\tbc.dat", "rb");
2. 格式化输入输出时, 规定的类型与变量本身的类型不一致。例如:
float l;
printf("%c", l);
3. scanf()函数中将变量地址写成变量。例如:
int l;
scanf("%d", l);
4. 循环语句中, 循环控制变量在每次循环未进行修改, 使循环成为无限循
环。
5. switch语句中没有使用break语句。
6. 将赋值号"="误用作关系符"=="。
7. 多层条件语句的if和else不配对。
8. 用动态内存分配函数malloc()或calloc()分配的内存区使用完之后, 未
用free()函数释放, 会导致函数前几次调用正常, 而后面调用时发生死机现象,
不能返回操作系统。其原因是因为没用空间可供分配, 而占用了操作系统在内存 中的某些空间。
9. 使用了动态分配内存不成功的指针, 造成系统破坏。
10. 在对文件操作时, 没有在使用完及时关闭打开的文件。
可以进行类型检查的。
可以进行类型检查,再看看
运行时错误就是在运行过程中出现的错误,比如你写了一个两个数相除的代码,第一次是除以10没错,第二次如果是除以0就会出错了