在C语言中什么是语义错误??

 我来答
希声和寡
2009-01-13 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3512万
展开全部
一般的程序错误,粗略一点分的话,可以大致分为语法错误和语义错误。

语法错误可以看作是编码出现了违反C语言规则的错误,一般编译或者链接时,
都会报错的。

而语义错误,也可以叫做逻辑错误,
也就是说你的代码完全符合C语言的规范,不会出现编译/链接的错误,
但是,在逻辑上有错误。
举个简单的例子,
加入编一个代码来统计int数组a的成员总和,成员总数为N:
for(int i=0;i<N;i++;) //这里在i++后面多了一个分号,这是语法错误
sum=sum+a[i];

for(int i=0;i<=N;i++) //这里多了一个i=N的取值,这是语义错误
sum=sum+a[i];
L_o_o_n_i_e
2009-01-14 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5250万
展开全部
语义错误,就是语法上没错误,编译可以通过,也可以运行,也可以得到结果,但结果不符合实际,是错的。这就是语义描述错了。

语文里,我们说“雪是白的”是对的,如果说“雪是黑的”,就是语义错误。

C语言中语义错误有各式各样。例如:

#include<stdio.h>
#include<math.h>
void main()
{ double a=5.0,b=4.0,c;
c = sqrt(b-a);
printf("%lf",c);
}
程序没有语法错误,应当是 c = sqrt(a-b);
写成sqrt(b-a); 出现负数开方,错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式