c - C语言中的语义错误和逻辑错误有什么区别?

标签 c

1.

   int a=6, b=5, c;
        a + b = c;
        printf("%d", c);
        return 0;

2.

int calculateAreaRectangle(int height, int width)
    {
     return (height + width);
    }

哪个是语义错误,哪个是逻辑错误?

我的另一个问题 - 由于编译而总是检测到符号错误是否正确?请举一些例子。

最佳答案

语法错误,您将其称为语义错误(语义错误? - 它与逻辑错误相同,所以我猜您指的是语法)只是一个直接的拼写错误(就像写 mether 一样)的母亲)。编程语言是一种严格的语言,必须被编译器理解。语法错误是以错误的方式编写语言(程序):

a + b = c;

是错误的,因为在 C 语言中不存在这样的语法。编译器将确认这一点。

逻辑错误是最糟糕的一种 - 程序中的大错误。逻辑错误是指当您正确编写整个程序时,编译器根本不会提示,并且程序似乎可以运行并给出结果,但结果是错误的!如您所知,矩形的面积是

width*height

但是你有

return (height + width);

这是一个逻辑(语义)错误 - 您的函数将运行并输出一个数字,但它与正确的数字相差甚远。

关于c - C语言中的语义错误和逻辑错误有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587202/

相关文章:

c++ - "#define STR(a) #a"有什么作用?

c - 无限循环,我不知道为什么

创建输入函数

c - 套接字选项是否从监听套接字跨 accept() 继承?

c - 与 write() 函数相关的意外行为

cairo/xlib 不更新窗口内容

c - fopen 函数将垃圾放在文件路径名上

c - realloc 是否更改指针地址?

c - recvfrom - 如何将缓冲区转换为字符串

c - 使用大型本地数组: is there a faster way than malloc?