c++中什么是语法错误,什么是编译错误

如题所述

简单的说,

语法错误:就是你的c++代码书写有问题,不是标准定义的;(比如 int写成了in,漏写个分号,漏写个括号,把int型参数赋值给字符串,等等),一般语法错误在编译时都是可以被编译器发现,发出警示的;

编译错误:是在编译时你本身的代码没问题,但是调用的一些文件、函数库,找不到,或者和你想要使用的版本不一致,导致函数参数不一样。

大多数情况下我们分类错误都是说 语法错误 和 逻辑错误;
逻辑错误:指你的语法正常,编译也能通过,但是按你的代码执行会出错。包括执行结果与预期不一致,或者程序执行就挂掉(一般是内存泄露等问题)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-06

程序的错误主要分成三种:

    编译链接错误;

    编译链接错误又分成编译错和链接错。

    编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;

    链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。

    运行错误;

    运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。

    逻辑错误

    逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。

    例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。

     

你的BD(int,int); 是一句函数调用?还是一句函数声明?

追问

BD(int,int);存在什么语法错误呀?谢谢大神啦

追答

你这一句是函数声明?

追问

应该是

追答

你把这一句语句的前后各5句一起贴出来看看

这一句本身不错,但是关键看你写在什么地方了。

还有语法错误的提示是什么?

追问

这是一个选择题,问题是选出有语法错误的是哪一个,答案是这个

追答

你把题目贴出来

追问

大神~错了~答案是D

B是我选的

追答

d里面用了分号了,所以错了

追问

哦哦,谢谢

那b里面没有返回值的类型呀

追答

不写返回值就是int

函数的默认返回值是int

追问

哦哦

追答

而且从c答案我发现你这个是c++,不是c

追问

嗯嗯

是的是的

真是大神呀~

请问这个你是怎么看出来的,因为我没学过c,

又要麻烦你了~~

追答

字符型其实是占一个字节的整型

这个题目的答案应该是194

追问

那直接把97与97相加就行了吗

答案写成10进制的也对吗

追答

恩,0x61也是97

不是写成十进制,是这个整形加上字符型,结果是整型

追问

哦哦

追答

而cout未写格式输出条件,整型输出就是十进制

追问

那答案写成c2了

cout<<"1234\056"<<endl;这个答案是什么呀~

大神,你还在吗

追答

我在干活,做开发,你去提问让其余人回答吧。

追问

o>_<o好吧!大神好忙,可是提问了没人回答~
呜呜

追答

不是,主要受打击了,下午我利用喝咖啡的休息时间帮你答来答去,结果你居然选了一个没什么水平的回答作为答案。
本来就是玩,不好玩就不玩了。

追问

对不起啦~别生气呀!关键我真的不怎么懂,原谅我吧o>_<o

你教的真的很好~我这么笨的都懂了~

追答

不说了,你赶紧去复习吧。

追问

哦,好的,你加油吧!

第2个回答  2014-01-06
编译错误就是语法错误,编译时检查的是语法是否正确,不正确就报错。
还有就是链接错误和运行时错误追问

BD(int,int);存在什么语法错误呀?谢谢大神啦

相似回答