C语言新手的100个报错解法 已更新11个错误

学习目标

  1. 收藏文章报错可以过来查

[更新数据]
此文将会持续更新,收录错误信息,若本文没有收录记得联系我~ CSDN 1_bit
持续更新中…
[发布日期:2020年11月16日 14:55:00]
更新:
暂无

C语言教程

C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。
第一篇:(一)脱离学习误区
第二篇:(二)C语言没那么难简单开发带你了解流程
第三篇:(三)轻轻松松理解第一个C语言程序
第四篇:(四)语言的基本数据类型及变量
第五篇:(五)C语言的变量、常量及运算
第六篇:(六)轻轻松松了解C语言的逻辑运算
第七篇:(七)C语言的循环分分钟上手
第八篇:(八)了解基本数组还不是那么简单
第九篇:(九)C语言二维数组与循环嵌套
第十篇:(十)C语言的指针原来是这样
第十一篇:(十一)C语言自定义函数真的很简单
第十二篇:(十二)原来结构体是这么回事
第十三篇:(十三)socket服务端编写

推荐

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
在这里插入图片描述

最近发了C语言的基础教程,得了很多C语言初学者的支持,并且像我询问了很多问题;通过了解大多数的C语言新手的问题得知,大多数的同学都是犯的类似的错误,在此我编写一篇文,大家若出现问题,查看编辑器的提示报错信息,复制关键字后,在该文章搜搜内容,即可查看,若没有查询到可以联系我,我将在此文收录该错误~ 多谢支持~

错误及解决方案如下

错误示例1 报错索引:expected ‘)’ before ‘;’ token

简介: 第一个C语言程序“HelloWorld”,在一部分新手学习的时候,经常会出现中英文标点混打情况,在绝大多数编程中,标点符号皆是英文的标点符号。
错误示例:

#include<stdio.h>
int main()
{printf("HelloWorld";
}

说明: 以上示例,在 printf("HelloWorld")后的反括号错将英文的反括号")“打成了中文的”)"。新手不注意观察将会极难找到这个错误。

编辑器典型报错提示:expected ')' before ';' token
报错解析: 由于反括号")“错误打成了”)",导致编译器在解析代码时,发现成对的圆括号少了一半。编译器这时是懵的,所以通过编辑器问你expected ')' before ';' token;这句报错表示“我需要在在分号前的括号你把他丢哪去了?我找不到了,你要还给我”。其实我们通过仔细观察中文的标点要比英文的标点大一点。
编写建议: 编写代码时最好是成对输入括号,不要输入一个括号后接着输入",然后又继续输入HelloWorld;推荐的方式是先输入成对的符号,例如先输入一对英文括号(),随后在一对括号中输入英文的双引号"",接着再往双引号内输入HelloWorld,这时就保证了标点符号的统一。
正确代码:

#include<stdio.h>
int main()
{printf("HelloWorld");
}

错误示例2 报错索引: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘<’ token

简介: 依旧使用第一个C语言程序“HelloWorld”,在一部分新手学习的时候,经常会出现在头文件饮用前少打#号的情况;这时候去搜索报错,问题依旧找不到解决办法。
错误示例:

include<stdio.h>
int main()
{printf("HelloWorld");
}

说明: 以上示例,在 include<stdio.h>前,少打了#号,由于可能会与某一些语言的“#”号注释记混,就导致了该问题。

编辑器典型报错提示:expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
报错解析: 由于少打了#号,导致编译器在解析代码时,“胡言乱语”,因为头文件声明并没有太多的内容给予编译器提示,编译器只知道,你在<号前少了什么东西,反正就是错了,编译器自己也很懵。所以通过编辑器问你expected '=', ',', ';', 'asm' or '__attribute__' before '<' token;这句报错表示“我现在啥都不知道,我只懂你在这个地方搞错了。因为我被你吓到了,我自己都差点胡言乱语”。这个时候可能你上网搜都搜不到对应的解决办法,那是因为这个错,可能错的不错(有点尴尬)。
编写建议: 头文件就记住#开头就ok。
正确代码:

#include<stdio.h>
int main()
{printf("HelloWorld");
}

错误示例3 警告索引: incompatible implicit declaration of built-in function ‘printf’

简介: 依旧使用第一个C语言程序“HelloWorld”,在一部分新手学习的时候,经常会漏掉头文件的输入,当然这个问题在某些情况下不会报错,可能会提示一个警告。
错误示例:

int main()
{printf("HelloWorld");
}

说明: 以上示例,没有输入头文件 #include<stdio.h>前。

编辑器典型报错提示:[Warning] incompatible implicit declaration of built-in function 'printf'
报错解析: 由于少打了图问价引用,导致编译器在解析代码时给你了点人情,毕竟头文件知道printf这些熟人是哪个地方的,所以就免为其难的帮了你一下。
编写建议: 头文件是代码中使用系统函数的支撑,你需要使用什么函数必须告诉编译器这些东西在哪,如果编译器不熟,它就无法帮你去找到这些东西。
正确代码:

#include<stdio.h>
int main()
{printf("HelloWorld");
}

错误示例4 报错索引: undeclared (first use in this function)

简介: 在编写C语言时,由于C语言是区分大小写的,若没达到设定的标记一致,则会出现错误;例如a与A是两个东西,Age和age也是两个东西。所以在进行程序别写时,一定要注意标记的统一。
错误示例:

#include<stdio.h>
int main()
{int a=0;printf("%d",A);
}

说明: 以上示例,定义了一个整型变量a,并且初始化值等于0;但是在输出变量a的时候错误的将a写成了A,导致错误的出现。

编辑器典型报错提示:[Error] 'A' undeclared (first use in this function)
报错解析: 由于将a打成了大写A,编译器在进行编译的时候,编译器发现这个A它是第一次遇见,并不知道是啥,所以就将这个信息告诉了你。
编写建议: 这种情况无法避免,通过报错提示是较为容易的解决方式,并且变量命名最好有“意义”,可以表达当前变量的含义。
正确代码:

#include<stdio.h>
int main()
{int a=0;printf("%d",a);
}

错误示例5 报错索引: expected declaration or statement at end of input

简介: 在编写C语言时,由于C语言是有区块、有层级的,并且内容需要通过一定的符号表示当前层级或块的开始或结束,或者理解为有始有终。若在编写缺少开头标记或结束标记将会产生错误;较为容易出现的错误是结束标记的缺少。
错误示例:

#include<stdio.h>
int main()
{

说明: 以上示例,使用helloworld为示例,在helloWorld程序结束后并没有使用花括号进行结尾说明,导致编译器报错。

编辑器典型报错提示:expected declaration or statement at end of input
报错解析: 由于尾部没有添加结束符,编译器在进行编译的时候,发现尾部没有添加标记,所以就将这个信息告诉了你。那为什么编译器不自动帮你加上去?那是因为编译器编译的时候无法判断你是要做什么,不能从主观角度考虑你编写程序产生的错误,所以报错后只能自己修改。
编写建议: 编写代码时最好是成对输入括号,不要输入一个括号或后接着输入,推荐的方式是先输入成对的符号,例如先输入一对英文括号()或{},随后在在其中编写代码内容。
正确代码:

#include<stdio.h>
int main()
{printf("HelloWorld");
}

错误示例6 报错索引: 无报错

简介: 在编写C语言时,使用scanf接收值一定要注意取地址,变量取地址使用取地址符“&”。
错误示例:

#include<stdio.h>
int main()
{int a=0;scanf("%d",a);
}

说明: 以上示例, 在将至存入变量a时由于没有加取地址,这时编译器不会报错,因为这个地方是地址,变量a为0也可以作为地址,但是会发生不可估计的后果如程序运行时程序崩溃。

编辑器典型报错提示:无报错,编译顺利
报错解析: 无报错,但是程序运行时将会出现程序崩溃等情况”。
编写建议: 熟记语法规则,这是对整体编写规则的不了解。
正确代码:

#include<stdio.h>
int main()
{int a=0;scanf("%d",&a);
}

错误示例7 报错索引: 无报错

简介: 在编写C语言时,使用scanf接收多个值,在scanf中最好使用显式来表示%d或者其它格式说明符的间隔,若是%d%d默认使用空格隔开。
示例:

#include<stdio.h>
int main()
{int a=0;int b=0;scanf("%d%d",&a,&b);printf("%d,%d",a,b);
}

说明: 以上示例, 输入值时,需要输入一个值使用空格后再输入一个值再按enter键确认。或者输入一个值后按下enter,随后再输入一个值,此时将会给两个变量赋值。

编辑器典型报错提示:无报错,编译顺利
报错解析: 无报错,但是程序运行时自己不清楚如何赋值将会导致某一值赋值失败”。
编写建议: 推荐使用scanf("%d,%d",&a,&b);或其他字符间隔。
代码:

#include<stdio.h>
int main()
{int a=0;int b=0;scanf("%d %d",&a,&b);printf("%d,%d",a,b);
}

错误示例8 报错索引: 无报错

简介: 在编写C语言时,使用两个等于号表示判断等于号左右两边的值是否相等;使用一个等于号表示将等于号右边的值赋值给左边。
错误示例:

#include<stdio.h>
int main()
{int a=0;if(a=1){printf("a等于1");}
}

说明: 以上程序if判断中将会一直判断正确,因为并没有使用两个等于号判断,一个等于号是赋值,这个结赋值操作是正确的,将会为Ture。

编辑器典型报错提示:无报错,编译顺利
报错解析: 无报错,if永远判断正确”。
编写建议: 熟悉语法规则。
代码:

#include<stdio.h>
int main()
{int a=0;if(a==1){printf("a等于1");}
}

错误示例9 报错索引: 无报错

简介: 在编写C语言时,使用switch若只想进行常规判断,则必须在每一个case块内,代码结束的末端添加break表示跳出;若未添加,则会导致错误程序一直运行到下一个case块内代码,直到结束或遇见break为止。
错误示例:

#include<stdio.h>
int main()
{int a=0;switch(a){case 0:printf("等于0\n");case 1:printf("等于1\n");break;case 2:printf("等于2\n");default:printf("未知\n");}}

说明: 以上进行case判断后将会运行 printf("等于0\n");以及printf("等于1\n");代码。

编辑器典型报错提示:无报错,编译顺利
报错解析: case判断正确后将会一直运行之后未加break的case块代码。
编写建议: 熟悉语法规则。
代码:

#include<stdio.h>
int main()
{int a=0;switch(a){case 0:printf("等于0\n");break;case 1:printf("等于1\n");break;case 2:printf("等于2\n");break;default:printf("未知\n");}}

错误示例10 报错索引: called object ‘printf’ is not a function or function pointer

简介: 在编写C语言时,勿将系统函数或其它有含义的标记作为变量或其它使用。
错误示例:

#include<stdio.h>
int main()
{int printf=0;printf("%d",printf);
}

**说明:**使用了输出函数printf作为变量,这是不允许的。

编辑器典型报错提示:called object 'printf' is not a function or function pointer
报错解析: 编译器告诉你,你这个东西用错了,在这里不是这样用的,反正编译器自己就是不给你用。就像你进一个学校,校长叫小明,你说你也叫小明为什么不能进。
编写建议: 熟悉变量命名规则。
代码:

#include<stdio.h>
int main()
{int printf_v=0;printf("%d",printf_v);
}

错误示例11 报错索引: 无报错

简介: 在编写C语言时,勿将越界使用数组。
错误示例:

#include<stdio.h>
int main()
{int a[2]={0,1};printf("%d",a[3]);
}

**说明:**使用了未确定的区域值,将会造成后果不可控,输出的值也是随机的。

编辑器典型报错提示:
报错解析: 无。
编写建议: 检查数组,编写数组使用函数,检查长度再赋值。
代码:

#include<stdio.h>
int main()
{int a[2]={0,1};printf("%d",a[1]);
}

我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:1_bit,邀请大家一同入驻:https://www.oschina.net/sharing-plan/apply

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【遥感数字图像处理】实验:遥感图像显示与数据输入/输出(Erdas版)

一、实验平台&#xff1a;Erdas 9.1 二、实验内容&#xff1a;视窗功能简介、图形和图像显示操作、实用菜单操作、显示操作、AOI菜单操作、矢量和栅格菜单、数据的输入输出等。 三、实验目的&#xff1a;初步了解Erdas的主要功能模块&#xff0c;在此基础上&#xff0c;掌握视…

在Windows Server2016中安装SQL Server2016(转)

在Windows Server2016中安装SQL Server2016&#xff08;转&#xff09; 转自&#xff1a; http://blog.csdn.net/yenange/article/details/52980135 参考&#xff1a; SQL Server2016企业版 附全版本key - moonpure的专栏 - CSDN博客 http://blog.csdn.net/moonpure/article/d…

Unity3D 之UGUI 滑动条(Slider)

这里来讲解下UGUI 滑动条(Slider)的用法 控件下面有三个游戏对象 Background -->背景 Fill Area --> 前景区域 Handle Slide Area --> 滑动条 Slider的属性 其他几个设置和其他控件都差不多&#xff0c;这里来讲解几个特有的属性。 Direction -->方向 Whole Number…

C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。

真不难 C语言难不难&#xff1f;这个问题是相对的&#xff0c;对于找到合适方法学习C语言的同学想必是觉得很简单&#xff1b;但对于一部分同学来说&#xff0c;没有众观全局就会误以为刚入门就需要学习庞大的知识&#xff0c;学着学着开始看不懂&#xff0c;由于心理作怪&…

【中间件】.net Core中使用HttpReports进行接口统计,分析, 可视化, 监控,追踪等...

HttpReports 基于.Net Core 开发的APM监控系统&#xff0c;使用MIT开源协议&#xff0c;主要功能包括&#xff0c;统计, 分析, 可视化&#xff0c; 监控&#xff0c;追踪等&#xff0c;适合在微服务环境中使用。官方地址&#xff1a;https://www.yuque.com/httpreports/docs/u…

【遥感数字图像处理】实验:遥感影像辐射纠正(大气纠正)完整操作图文教程(Erdas版)

一、实验平台:Erdas 9.1 二、实验数据:dmtm.img 三、实验内容:利用回归分析法校正影像 四、实验原理:大气散射只影响短波波段,长短波进行对比,找出影响短波的程辐射值,将其减去 五、实验目的:掌握回归分析法校正影像的方法及步骤,能熟练地对影像进行校正 六、实…

Acitivty生命周期

为什么80%的码农都做不了架构师&#xff1f;>>> Acitivty 有七个生命周期&#xff1a; onCreate&#xff1a;当第一次调用一个Activity就会执行onCreate方法 onStart&#xff1a;当Activity处于可见状态的时候就会调用onStart方法 onResume&#xff1a;当Activity可…

还不懂你现在学习的编程语言能做什么?还不懂如何进阶?过来看图

前言说七说八 本篇文章的配图标注、内容并不代表仅有&#xff1b;本篇仅以个人经验及当前大学&#xff08;大专、本科&#xff09;相关课程作对比&#xff0c;列出比较常规的语言发展走向及相关技术&#xff1b;再次重申&#xff0c;本图及本文所涉及的技术发展走向并不代表着…

【遥感数字图像处理】实验:遥感影像几何纠正完整操作流程(Erdas版)

☆☆☆ 几何纠正预备知识 ☆☆☆ 1、几何变形误差的影响因素 遥感器本身引起的畸变外部因素引起的畸变处理过程中引起的畸变2、需要做精纠正的情况 景与景之间作比较GIS建模之前监督分类时提取样本创建高精度比例尺的影像地图与矢量数据叠加源于不同比例尺的地图之间比较提取精…

openid 钉钉_钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息...

最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆;就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所以自己记录一下;实现这个要求,有好几种方式,使用ISV方式相对来说比较简单…

趣味二维码生成

1背景介绍 最近在 Github 看到了一个有趣的项目 amazing-qr&#xff0c;它支持生成普通二维码&#xff0c;带图片的艺术二维码&#xff0c;动态二维码。项目是用 python 编写的&#xff0c;以命令行的方式运行生成&#xff0c;不太方便调用&#xff0c;因此&#xff0c;我…

《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然

一、学习目标 了解第一个C程序了解第一个C程序结构了解什么是注释了解什么是命名空间了解C语言的输出&#xff08;如何在程序运行时显示内容&#xff09;了解语句结束后需要使用什么符号表示结束 了解程序入口 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;…

1、Locust压力测试环境搭建

环境准备&#xff1a;阿里云服务器一台、python2.7、pip Locust 介绍Locust 是一个开源负载测试工具。使用 Python 代码定义用户行为&#xff0c;也可以仿真百万个用户。 Locust 简单易用&#xff0c;分布式&#xff0c;用户负载测试工具。Locust 主要为网站或者其他系统进行负…

交互式 .Net

1名词解析 1. 交互式交互式是指输入代码后可直接运行该代码&#xff0c;然后持续输入运行代码。2. 交互式 .Net.Net 是一种编译型语言&#xff0c;不像 python 这类的脚本型语言&#xff0c;可以边输入代码边运行结果。幸运的是&#xff0c;软微推出了 interactive 这个项…

mysql signed 长度_浅谈mysql字段长度设置

mysql 中最常用的数据类型是tinyint,smallint,int,bigint,char,varchar;char(n)和varchar(n)存储固定长度的字符数据&#xff0c;长度最大为254字节。使用 ‘n’字节的存储空间;有符号和无符号区别:有符号可以存储负值,无符号只能存储0和非负值数值;tinyint 占用1字节的存储空间…

R语言-异常数据处理2

在R中进行基于稳健马氏距离的异常检验 前言 我们研究的数据中经常包含着一些不同寻常的样本&#xff0c;这称之为异常值(Outlier)。这些异常值会极大的影响回归或分类的效果。异常值产生的原因有很多&#xff0c;其中可能是人为错误、数据测量误差&#xff0c;或者是实际确实存…

《零基础看得懂的C++入门教程 》——(2)什么是数据类型、变量?一看便会

一、学习目标 了解基本常用的数据类型了解什么是变量 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c;学习方法和一些原理C与C都是相同的…

pycharm 快捷键介绍

CtrlN (Navigate | Class) 打开输入框输入要查找的类名 Ctrl空格 代码自动补全 Ctrl空格&#xff08;按两次&#xff09;对于没有导入的类自动完成导入代码并自动补全 AltF7 查找方法变量在工程中的所有应用 CtrlQ (View | Quick Documentation). 快速查看文档 …

db2和mysql语句区别_db2和mysql语法的区别是什么

MySQL默认使用大小写敏感的数据库名、表名和列名(可以通过lower_case_table_names参数控制是否大小写敏感)&#xff0c;DB2数据库对大小写不敏感。虽然MySQL与DB2都遵循并符合SQL92标准且大多数SQL相互兼容&#xff0c;但是在一些细节的实现上有一些不同的地方。比如&#xff1…

查缺补漏系统学习 EF Core 6 - 数据查询

这是 EF Core 系列的第四篇文章&#xff0c;上一篇文章讲述了 EF Core 中的实体迁移与数据播种。这篇文章盘点一下 EF Core 的几种数据查询方式&#xff0c;内容较多分上下两篇。点击上方或后方蓝字&#xff0c;阅读 EF Core 系列合集。简单查询在 EF Core 中&#xff0c;每个查…