怎么判断语句编译不出错
⑴ 通过示例展示C++编译器如何知道某个语句没有任何错误
这个东西有点复杂,可以通过调试之类的手法发现哪个变量的值出现问题,举个例子,你在cin后面再cout,就可以看出你的数据有没有存进去
⑵ oracle存储过程提示编译完成但存在错误,如何查看错误
1、首先打开PL/sql Developer软件,新建sql窗口。
⑶ 编译原理如何判断id+id*id没有语法错误
构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子.程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合(编译出错),则输出错误信息.
以你说的SQL语句为例,词法分析是将语句中的单词流识别出来,比如create table Student 词法分析是分析出 这句的单词流是 “create” “table” “identifier”(前提是你给它们编号 比如用宏或者枚举),然后语法分析 是通过单词流 判断 非逻辑错误 比如 有不能识别的符号 create table后面不是标示符等等 语义分析是分析语句的逻辑关系 比如字段长度越界什么的如 vchar(2) 你赋值为“啊啊啊啊啊啊”这种错误的识别是语义分析阶段完成的 希望能帮到你
⑷ 设有如下变量,以下哪些语句编译不出错
void (*pf)(); 定义函数指针pf,指向返回值为void的函数,参数任意
pf = fun; 正确!
pf = &fun; 正确!C照样认可这种写法,只是不同的观点而已!请参看《C和指针》
void *pf(); 声明pf函数,没有参数,但返回void *类型!只是声明,还没有定义!
另外,pf 本身是地址,不是变量,不可以更改!故pf = fun;错误!
再看这一句
D)void (*pf)(int,char);pf=&fun;
首先声明pf为函数指针,它指向的函数返回void类型,
参数为int和char(不是char *,否则就对了)
而fun的参数2为char *类型,故两者类型不匹配,pf=&fun; 错误!
⑸ C++开发,如何区分编译错误和运行错误。
野指针什么的在编译期是编译器是查不出来的。
但有一些编绎器会有警告的方式体现出来。
程序尽量的在debug下调试。多trace下。
⑹ 程序无法编译通过问题,怎么解决
关于程序无法通过编译的问题,其错误类型肯定是有很多种的。根据我多年的编程调试经验,可以给你提供以下几种类型的错误,供你参考(以下以 C 语言编程经验为例,其他编程语言的调试思路也是同理的)。
其中最容易调试的程序错误类型就是:
(1)、在编写源程序过程中出现的各种语法错误。这种错误主要是由于刚刚开始学习编程,对编程语言的语句、以及语法结构还不是很清晰造成的,这种错误是最容易进行调试的,因为语法错误,编译器连编译都无法通过(通常会显示出来具体是哪一行出现错误),这样的话,你就可以直接到出错的那一行进行修改源代码了;
(2)、若是经过一段时间的上机练习,对学习编程的初始阶段已经较为熟练了、且语法错误较少了之后,之后就会遇到更加复杂、并且难于调试的语义错误。例如在 C 语言中,对于如下代码:
void main( )
{
int n ;
scanf("%d", &n) ;
if( n == 100 )
printf(" n is 100 !\n") ;
else
printf(" n is not 100 !\n") ;
}
但是若在逻辑判断语句:if( n == 100) 中,如果误将“==”(逻辑等于)写成了“=”(赋值等于),那么在 scanf("%d", &n) 语句中,无论你输入的 n 等于多少,一旦执行 if 语句,那么 将 100 这个数字赋给变量 n,则该逻辑表达式的值总是 1,程序的运行结果必定总是输出:n is 100。
而该程序的实际思路是:从键盘输入一个整数,如果该整数等于 100,则输出:n is 100 !如果输入的整数不等于 100 的话,则输出:n is not 100 !
像这样的逻辑错误(在对 C 语言源程序进行编译时,C 语言编译器是检查不出来的),如果没有丰富的程序调试经验,程序调试起来就是非常困难的。
(3)、其它的错误类型例如:数组越界、非法使用了未初始化的指针变量、未对指针变量进行有效的内存分配,就向那一块存储区域读写数据,等等。这些都会造成程序崩溃,严重的就会造成操作系统崩溃。
⑺ 编程错误的时候一般怎么找出错误,不是编译错误是编程错误
其实你的问题总结一下就是如何检查bug:
1、排查流程
2、总结
解决bug过程可能痛苦,累人,难受,压力大,甚至暂时还解决不了,关键看是不是尽力了。要想自己得到提高,达到更高层次,这个坎必须跨过,否则只能是平庸的程序员,只能承担一些简单的任务。
解决bug的过程也能学到很多东西,也有很多乐趣,自己也能得到很大的提升,解决bug是属于自己职责范围内的事情,是种乐趣还是种包袱,关键看个人的心态。
最后,给大家分享一句很有名的话叫”峰高无坦途“,意思是:要想登上最高峰欣赏美景,没有平坦的道路可走,都是悬崖峭壁,想登上高峰欣赏美景,必须跨过这些坎。
⑻ 运行下列语句,查看代码能否编译通过。如果能编译通过,请列出运行的结果, 否则,请说明编译失败的原因
编译不能通过.
因为input输入的数据类型缺省是字符串型的,所以变量age需要转成整型值才能进行比较.
把age=input("请输入年龄:")改成age=int(input("请输入年龄:"))就行了.
完整的Python程序如下
age=int(input("请输入年龄:"))
if age>=18:
print("欢迎光临")
print("Hello World!")
源代码(注意源代码的缩进)
⑼ 对于C语言编程出了错,怎么能快速找出错误呢
代码是否存在逻辑错误:
1、变量使用前未被数值
实例:
int main()
{
int x=5,y,z;
z=x*y;
printf("%d",z);
return 0;
}
在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。
2、把赋值赋值符号“=”与等于符号“==”相混淆
实例:
有一下语句:
if(a=5)
{
printf("a等于5");
}
输出的结果永远都是“a等于5”,原因是在执行if(a=5)之时,无论a之前是什么值,此时都会被重新赋值为5,而不是把a的值与5相比较,而正确的表示比较的表示为:
if(a==5)
{
printf("a等于5");
}
(9)怎么判断语句编译不出错扩展阅读
C语言编程注意事项:
1、书写标识符时,忽略了大小写字母的区别。
2、将字符常量与字符串常量混淆。
3、忽略了变量的类型,进行了不合法的运算。
4、忽略了“=”与“==”的区别。
5、忘记加分号。
6、多加分号。
7、输入变量时忘记加地址运算符“&”。
⑽ 如何快速查找C语言编译时的错误
1、首先,我们启动编译软件程序,今天我们以VC++6.0为例。
注意事项:
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。