首页 > 编程语言 >解决C语言编程常见问题,轻松提高编程水平!

解决C语言编程常见问题,轻松提高编程水平!

时间:2023-07-25 15:23:54浏览次数:46  
标签:常见问题 函数 错误 代码 编程 C语言 语法错误

遇到错误时应该如何处理

     当遇到错误时,不要惊慌失措。首先要查看错误提示信息,如果是中文提示就直接阅读,如果是英文提示则进行翻译理解。根据错误提示定位到错误发生的代码行数,通常错误就在该行的上下几行代码中。不要偷懒,马上向他人询问问题,这样对自己负责任。成长需要经历困难,只有亲身经历过才能真正记住和理解。若根据错误提示无法解决问题,先在网上搜索答案,自己仔细检查代码通常也能找到问题所在。如果仍无法解决,可以向在线群里请教有经验的人,但提问也需要讲究技巧:首先描述程序的功能,然后解释错误原因、出现位置以及你自己的分析。

C语言常见错误主要有三种:

一、语法错误:

定义:指程序中含有不符合语法规定的语句。

出现原因:

1. C语言基础语法不扎实。

2. 编写代码时马虎,只想赶快完成。

3. 对某些知识点了解不深,不知道如何正确使用。

常见错误:

1. 引号、逗号、分号使用错误(中文和英文的引号、逗号等是不同的,注意切换输入法)。

2. 变量未定义(这个不用多说)。

3. 变量赋值、运算时显示类型不匹配(例如:int a=2;float b=2.021;当使a=b时,会显示类型不兼容,会导致数据丢失)。

5、函数参数不匹配(了解函数的作用,需要传什么参数,对照形参传实参)

6、头文件未包含(有时候你在别处看见一个好玩的函数,你自己拿来用,发现此函数竟然未定义,oh~糟糕!你要知道此函数在哪个头文件里面,或者是否是自己定义的)。

7、宏定义不是C语言语句,后面一定不能加分号,否则会导致宏定义不能使用(#include SIZE 100; 这样就是错误的,a=SIZE+1;这里就运行不了,编译器也崩溃了,乱报错,啥都有,你要是不注意根本找不到问题!)

 

二、逻辑谬误

概念:逻辑谬误指的是程序中没有语法错误,可以通过编译、连接生成可执行程序,但程序运行的结果与预期不符的错误。

出现原因:

1、和语法错误一样,是由于不细心引起的,是不该出现的错误。

2、对于内存不够了解,使用指针时出现问题。

常见错误:

1、在进行if条件判断时使用了赋值运算符=,而不是逻辑运算符==(if(a=b)和if(a==b)是完全不同的,相信大家都遇到过)。

2、这个问题让人头疼,运行一下代码,好,没问题!然而,在输入等操作后,突然弹出一个窗口,显示大致意思是访问冲突。此时,你盯着代码发呆。发生了什么,为什么会这样,如何解决!???

此类问题的错误有很多:

1 数组越界访问或者越界存储数据

2 用scanf输入时没有取地址(&a)

3 指针指向了没有权限访问的内存(注意野指针)

4 一定要细心、细心、细心

三、系统错误

定义:指程序没有语法错误和逻辑错误,但其正常运行取决于特定外部条件的存在。如果这些外部条件缺失,则程序将无法执行。

出现原因:

1、外部依赖项路径设置错误。

2、缺少外部依赖项。

常见情况:

1、在图形编程中输出图片时,路径设置错误。

2、使用某些函数时找不到这些函数(例如,easyx图形库)。虽然你已经包含了头文件并编写了输出代码,在别人那里也能运行,但要注意,并非所有的函数在C语言中都自带,有些需要额外安装,easyx就是其中之一。

对于热爱编程的朋友们来说,即使路途崎岖,也要坚持走下去!如果你对编程感兴趣或有需求,笔者强烈推荐一个编程技术学习交流的聚集地→私信我即可!在那里你可以找到完整的学习路线图和学习资料视频哦,不论你是初学者还是专家,都能在这里探讨编程,享受良好的学习氛围!

 

标签:常见问题,函数,错误,代码,编程,C语言,语法错误
From: https://www.cnblogs.com/2467118965z/p/17579949.html

相关文章

  • LKT(LCS)系列IIC接口加密芯片调试常见问题(一)
    1、加密芯片的数据交互协议是什么格式?发送时:地址+两字节数据长度(后续数据的长度)+后续数据内容。Eg.5000050084000008。接收时:地址+两字节数据长度(后续数据的长度)+后续数据内容。Eg.51 000A11223344556677889000。(红色为发送,蓝色为接收) 2、主控端发完指令后无Stop信号可以......
  • 状态机编程
    伪代码实例:洗衣机 功能需求由功能转变状态图梳理状态之间的转换的关系梳理状态之间的转换的关系(添加切换条件)代码编程#include"stdio.h"#include"string.h"#include"stdlib.h" #defineSELF_CHECK_STATUS(1)//上电自检#defineIDEL_STATUS(2)//空闲#defi......
  • java.util.concurrent 编程范例
    java.util.concurrent范例之一java.util.concurrent之一Java代码packagetest;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassTestThreadPool{ publicstaticvoidmain(Stringargs[])thr......
  • 初识C语言——7扫雷(低配)
    主程序——text.c:#define_CRT_SECURE_NO_WARNINGS1#include"game.h"game(){ charHide[ACRS][COLS]={'0'}; charShow[ACRS][COLS]={'0'}; //数组初识化 Initialize(Hide,ACRS,COLS,'0'); Initialize(Show,ACRS,......
  • 【网络编程】基础知识(Web Server和HTTP协议)
    WebServer一个WebServer就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过HTTP协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的HTTP请求,并对其请求做出HTTP响应,返回给客户端其请求的内容(文件、网页等)或返回一个Error......
  • GlassFish 3.1.1 的JMS 独立客户端编程
    下面文章很长,至于我的最终解决方法是在独立客户端的项目上右键->库->添加JAR/Folder加入C:\ProgramFiles\glassfish-3.1.2\glassfish\lib\gf-client.jar文件最近一直在关注JMS,起因是从Magento的PHP系统向JMS发送消息。实验了ActiveMQ,GlassFish与ActiveMQ的集成。最后还是......
  • C语言分支与循环(7)--- do...while()循环
    一.do语句的语法do循环语句;while(表达式);我们可以发现do后面的循环语句一定会被执行一次,随后再去执行while()循环语句,去判断表达式,如果为真则返回do语句继续执行,若为假则不进入do语句循环,如以下代码:#include<stdio.h>intmain(void){ inti=0; do { printf("%d",i);......
  • 我的第五次C语言练习
    今天写书上的练习。//第一章练习//intmain(void)//{// intinch;// floatcm;// inch=0;// scanf("%d",&inch);// cm=2.54*inch;// printf("cm=%f\n",cm);// return0;//}发现之前第一章还有练习没写,是将英尺转换为厘米,因为inch乘了个2.54,所以cm是小数,用的是flo......
  • 编程常用的变量命名英文缩写
    Aaddr=addressapp=applicationarg=argumentasm=assembleasyn=asynchronizationauth=authorization/authenticationavg=averageBbuf=bufferCcalc=calculatecert=certificatecmd=commandcmp=comparecol=columncoord=coordinates......
  • java并发编程(二)---上下文切换
    一、什么是上下文切换?  即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,线程会在分配的时间片内执行任务,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几......