一段C语言代码不知道错哪儿了,请高手指教
程序中的错误,按照其产生的原因和引起的后果,通常可以分为三种类型:即语法错误、编译运行错误和逻辑错误。
一、语法错误
所谓“语法错误”是指由于违反了语言有关语句形式或使用规则而产生的错误。
比如错误地使用了关键字、遗漏了某些必需的标点符号、分支语句或循环语句不完整或不匹配等都会导致语法错误。
对于语法错误,在 VB 中可以通过设置“自动语法检测”功能来发现。设置“自动语法检测”功能的方法是执行菜单命令:工具︱选项, “编辑器”选项卡,然后再选中“自动语法检测”选项即可。
二、编译运行错误
程序运行时,当试图执行一个不能执行的操作时,会产生编译运行错误(也称运行时错误或实时错误),比如引用一个不存在的对象、进行除数为零的除法运算等都会产生运行时错误。
编译错误,一般是语法有问题,程序在编译是就产生错误不能编译成目标文件,比如包名或内部类名写错误等等。
运行错误,就是程序通过编译,却在运行时出错,一般是逻辑上的问题,比如数组越界,空指针等等。
比较常见的运行时错误是在做除法运算时所产生的“除数为零”错误。如下列 VB 代码:
Dim a As Double, b As Double, Result As Double
a = 100
b = 0
Result = a / b
该程序在语法上并没有错误,但是由于除数为 0 (b = 0),程序运行中,当执行到语句“Result = a / b”时, 就会产生一个“实时错误”,系统中止程序运行的同时将弹出错误信息提示框。
三、逻辑错误
所谓“逻辑错误”是指程序运行得到的实际结果和预期结果(正确结果)不一致。“逻辑错误”通常是由于错误的算法设计而引起的。
对于“逻辑错误”,系统通常无法自动检测,只能通过验证结果的正确性来判断是否存在逻辑错误。