C语言编程中为什么明明没有语法错误也没有逻辑错误的,运行过程中经常遇到程序错误的警告?然后就提示结束

作者&投稿:挚炭 (若有异议请与网页底部的电邮联系)
在C语言中,计算机程序通常有哪几种错误?~

1、系统错误:这是指程序没有语法错误和逻辑错误,但程序的正常运行依赖于某些外部条件的存在,如果这些外部条件缺失,则程序将不能运行。
2、语法错误:这是指程序中含有不符合语法规定的语句,例如关键字或符号书写错误(将printf写成print、将数组元素引用写成a(2)等)、使用了未定义的变量、括号不配对等。
3、逻辑错误:这是指程序中没有语法错误,可以通过编译、连接生成可执行程序,但程序运行的结果与预期不相符的错误。

扩展资料:C语言程序的特点
1、采用结构化的控制语句,是完全模块化和结构化的语言。
2、数据类型丰富,具有现代语言的各种数据结构
3、语法限制不太严格,程序设计自由度大,同时也意味着容错性差。
4、允许直接访问屋里内存,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作,兼有高级和低级语言的特点。
5、目标代码质量高,程序执行效率高(比汇编程序生成的目标代码低10%-20%)
6、允许在编译之前使用预处理命令,提高编程效率。
7、以内存使用为核心。
8、C语言程序是由函数构成的。一个源程序不论有多少个文件组成,包含多少个函数,都有且一个 main 函数,及主函数。一个程序总是从 main 函数开始执行,而不论 main 函数在程序什么位置,程序的执行也结束于主函数,其他函数通过函数调用被执行。
9、函数都要有类型说明,放在函数名前,如 void 表示空类型,没有返回值。
10、函数体内语句一般按四大功能顺次排列,即首先对变量与函数做声明 ——>变量赋初值 ——>数据计算与处理 ——>输出结果。

新手最郁闷的事情莫过于程序可以运行但是却得不到自己的结果了吧。
老手最郁闷的事情莫过于新手问为什么我的程序可以运行但是却得不到自己的结果了吧。
比如:
你天天用操作系统。
如果你用过Windows98就应该知道那时候系统经常崩溃的。
但是微软设计的时候,不会把它故意设计成每小时或者没几天崩溃几次吧。
不崩溃的时候,程序不也是正常运行么。
为什么得不到自己想要的结果:
那是因为你的程序根本就没有写对
比如:
老师让你输出:1
你写个程序输出:2
你的代码当然编译不会出错。
而且可以很好的运行,但是结果就是2.
永远都不会是1,因为你就让他输出的2,结果怎么会是1呢。
开发人员都知道:
再也没有比修改语法错误再简单的了
直接看看编译器报的错,看看第几行,修改。OK。。太简单了
逻辑错误就得调试了
这个世界上只有调试不开发的。没有开发不调试的。
不会debug。永远都不是程序员。
你不可能一下子就得到自己想要的结果。
尤其是比较大的程序。
gdb..学习它,使用它,爱上它。
(gdb *nix平台的。如果,而且我猜你用的是Windows,Windows用vs不错)

他是说程序运行过程中出现的错误警告,不是编译时的语法警告。原因也有很多,比如内存超出范围,指针指向了不明地址或者错误地址,比如你的代码里面声明了一个unsigned char *ch的指针,而引用的时候使用ch[10]=0x00;此时运行的结果不一定是你预想的结果,改进方法是将声明改成unsigned char ch[11];

警告是很正常的,几乎大型程序都会出现警告。但是警告不会影响编译结果,出现警告的原因有很多,比如变量定义的没使用,重复定义之类的等都会出现警告


编程语言中声明是什么意思
声明是指在编程语言中用于指定程序变量类型、函数或类名称的关键字。声明指定了变量、函数或类的类型,以及程序中其它部分对其使用时的一些限制和规则。声明通常是在程序的开头部分进行定义,以便其他程序部分可以调用或引用这些变量、函数或类。声明在编程语言中被广泛使用,可用于定义不同类型的全局变量,局...

编程语言中,声明变量时,为何要指定变量的数据类型
声明变量时,需要在内存中为该变量开辟空间,不同的数据类型占用的内存空间是不同的,如int占用4字节,char占用2字节(java中),指定数据类型是为了给不同的数据类型分配不同的内存空间,既能适当地存储该变量的值,也不会浪费内存空间。

C语言中,声明变量和初始化变量有什么作用?
c语言中,变量只有先声明,才能使用,这样避免编程时产生不必要的错误,一位不同类型变量的存储格式和长度都不同,所以字节长度不同,声明变量可以让计算机知道你更需要用什么样的格式存储变量,从而高效稳定地运行程序。C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写...

c语言编程输入时为什么一维数组要加地址符,字符数组就不用呢
因为字符数组,数组名本身就是指一个地址。定义了字符型数组char name[10]。name有两个含义:一个是代表着name这个数组第一个位置的地址,也就是name[0]的地址。可以说name就等价于&name[0]。还有一种意思就是指代name整个数组。&name 就是整个数组的首地址。所以name和&name取得的地址是相同的。

C语言编程中经常会出现未定义的是怎么回事??
在C语言中,出现未定义,简单来说有以下几种原因:1、变量类型没有指定。2、指定类型的方式与C++混淆了,特别是在.c文件中容易出现这种错误。3、变量指定了类型,但是与使用的变量名不符合,使用的变量名会提示为未定义。 本回答由电脑网络分类达人 11推荐 举报| 答案纠错 | 评论 0 3 ...

C语言中int变量声明为什么要放最上面?
这是C中的一种限制,所有要用的定义声明语句(变量定义,函数头声明等)应定义声明在所有执行语句(如s=a+b;) 的前面,不然编译不过去,而我听说那vb好像就可以要用时才定义了,不用在最开始都说明, 但无论在哪定义, 都遵循先定义后使用 ...

变量命名的基本规则是什么?
6.不使用特殊字符: 变量名通常不包含特殊字符(如$、@、!等),因为它们在许多编程语言中具有特殊用途。7.尽量简短明了: 变量名应该足够简短,同时又能够清晰表达变量的含义。避免使用过长或过于复杂的变量名,以免影响代码的可读性。8.一致性: 在项目中保持变量命名的一致性,即使用相似的命名约定...

C语言中的问题不明白为什么 新人麻烦详细解释一下谢谢
这里scanf指定逗号为输入的分隔符号。所以输入时数字和字符之间必须有逗号。scanf不指定分隔符时,默认以空白字符(空格、回车、制表符)为分隔符。PS:如果写%d%c不指定分隔符号。由于第二个变量是字符型,输入时中间不要加空格符,否则会将空白符号做为字符接收。

C语言中怎样申明变量?
任何一种编程语言都离不开变量,特别是数据处理型程序,变量的使用非常频繁,没有变量参与程序甚至无法编制,即使编制运行后的意义也不大。变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。C语言是一种应用广泛的善于实现控制的语言,变量在C语言中的应用更是灵活多变。那么变量究竟是什么呢?

C语言编程提示 “price”: 未声明的标识符 怎么回事? 请各位大侠指点...
首先我讲一下,你的Caculate()函数里面所用到的price变量没有定义,因此会提示标识符price没有定义。。。其次{代码块}这是定义了一个块所以它里面的变量只能在块里面用,这样的变量称之为局部变量,而你所定义的price在main函数块里,所以在你的Caculate()函数块不能用 include<stdio.h> float ...

牙克石市15611124428: C语言编程中为什么明明没有语法错误也没有逻辑错误的,运行过程中经常遇到程序错误的警告?然后就提示结束 -
衡莲九味: 他是说程序运行过程中出现的错误警告,不是编译时的语法警告.原因也有很多,比如内存超出范围,指针指向了不明地址或者错误地址,比如你的代码里面声明了一个unsigned char *ch的指针,而引用的时候使用ch[10]=0x00;此时运行的结果不一定是你预想的结果,改进方法是将声明改成unsigned char ch[11];

牙克石市15611124428: C语言程序没有语法错误但无法运行,为什么? -
衡莲九味: #include<stdio.h> #include<math.h> int main(){ int i,j,k,t,sum=0,a[11],p; a[0]=0; for(i=499,k=0;k<=10;i-=2){ p=sqrt(i); for(j=t=2;t<=p;t++){ if(i%t==0)break; else j=1;} if(j==1||i==1){ sum+=i; a[k]=i; k++; } /* 原程序写的是a[i]=i;应为a[k]=i; 另 C中的数组...

牙克石市15611124428: 为什么我的c程序没有语法错误了还是运行不了? -
衡莲九味: 程序还有逻辑错误,比如死循环,数据溢出等都能使程序错误.而且逻辑错误不能被编译程序检查出来,需要自己判断.最好的方法是使用VC的step into,一点点看哪里出问题了.

牙克石市15611124428: 为什么我写的C语言程序编译时没错,运行时有错误 -
衡莲九味: 楼主,你好!编译没有错误只能说明没有语法错误,并不能说明代码的逻辑没有错!因为编辑器主要是根据c语言的语法来检查你的代码有没有错!

牙克石市15611124428: C语言作业在编程软件上无错误提交确老是显示语法错误,编译错误怎么解决啊?? -
衡莲九味: 你要运行啊 运行没错就好 就是流程走一遍 比如叫你输入 1+1 输出2 那么你要输入啊 不要程序写完了 编译一下 OK没错了 就可以了 就像回复的那个死循环 那是程序写错了 编译也能通过的 不走流程你是看不出来的

牙克石市15611124428: 为什么我的C语言程序编译正确,但却没有运行结果 -
衡莲九味: 一般是程序的逻辑问题,不知道你使的是什么编译器,VC下后缀名要改成.c或.cpp才能有运行结果

牙克石市15611124428: c语言程序中无语法错却在编译时提醒有语法错误 该怎么改?
衡莲九味: 大小写,或者符号不是英文的符号,仔细检查

牙克石市15611124428: 为什么我写的C语言程序没错,缺没有运行结果如: -
衡莲九味: 你可以将你的输入的a,b,c的值打出来看看,你的scanf这个函数有问题,像你这样写你输入的时候要这样输,比如 2,3,4 这样a=2,b=3,c=4,逗号必须要输入,另外变量定义的时候最好初始化一下. 最后一个print估计是你打错了,少了个%d

牙克石市15611124428: c语言为什么编译无错误 执行就有错误? -
衡莲九味: 那可能就是你那个自带的VC6有问题,去重新找一个吧. VC6下编译正常:

牙克石市15611124428: C语言中,为什么函数scanf没有语法错误但报出运行时非法内存访问错误?是由哪个参数引起的? -
衡莲九味: 可能有输入字符串超出数组长度.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网