首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c语言常见错误和盲区

b=a++ 可以拆分成 b=a a=a+1 而来到c时候 a值已经加1了 即c=11 b=++a 可以拆分成 a=a+1 b=a 即b=11 这里是先加加 在使用...c=a a值已经在上面加1了 即c=11 二、static使用 1.修饰局部变量 结果不难看出是 2 2 2 2 2 a属于局部变量在栈区 函数使用后就会被销毁 所以每次调用 a...时 a值都会被重置成为1 a=a+1 最终每次输出都是2 ---- 现在函数中a被static修饰 成为了静态区中 所以这次调用a值不会随着函数调用结束而销毁 第一次a结果为 2 依次增加...就变成了内部连接属性 只能在本身源文件中使用了 4.总结 具有外部链接属性一个程序中其他源文件都可以使用(没有被static修饰过全局变量 函数 ) 而具有内部链接属性只能在本身源文件中使用...(static修饰过全局变量 函数)

77320

C语言常见6种错误

1、忽略大小写字母区别 编译代码时把x和X认为是两个不同变量名,而显示出错信息。C语言认为大写字母和小写字母是两个不同字符。习惯上,符号常量名用大写,变量名用小写表示。...2、将字符常量与字符串常量混淆 char a; a=”c”; 例子中混淆了字符常量与字符串常量,字符常量是由一对单引号括起来单个字符,字符串常量是一对双引号括起来字符序列。...3、忘记加分号 分号是C语句中不可缺少一部分,语句末尾必须有分号。 x=1 y=2 编译时,编译程序在“x=1”后面没发现分号,就把下一行“y=2”也作为上一行语句一部分,这就会出现语法错误。...改错时,有时在被指出有错一行中未发现错误,就需要看一下上一行是否漏掉了分号。 4、scanf函数输入时忘记加地址运算符“&” int a,b; scanf(“%d%d”,a,b); 这是不合法。...这种错误尤其需要注意。 6.switch语句中漏写break语句 例如:根据考试成绩等级打印出百分制数段。

1.3K3129
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言编程常见错误集锦 【下】

    由于漏写了break语句,case只起标识作用,而不起判断作用。当grade值为A时,程序会从上到下执行完,五个printf都输出。 正确写法应为: ?...可分解为:b=i;i=i+1; 【第二个区别】 i++ 不能作为左值,而++i 可以 左值是对应内存中有确定存储地址对象表达式值,而右值是所有不是左值表达式值。 ?...5、忽略sizeof()和strlen()区别 ? 6、定义数组时,将定义“元素个数”误认为是可使用最大下标 ? C语言中,定义时用a[5],表示a数组中有5个元素。...其下标是从0开始,数组中最后一个元素是a[4],不存在a[5]。 7、定义数组时误用变量 ? 数组名后用方括号括起来是常量表达式,可以包括常量和符号常量。即C不允许对数组大小作动态定义。...8、地址运算符&使用错误 ? C中,数组名代表地址 正确应为: ? 9、同时定义了形参和函数中局部变量 ? 形参应在函数体外定义,而局部变量应在函数体内定义。 正确应为: ? ? —END—

    1.6K10

    c语言编程常见错误集锦 【上】

    C语言区分大小写。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 ? 2.忽略变量类型,进行不合法运算 %是求余运算,得到a/b整余数。...C语言规定以“\0”作为字符串结束标志,它是系统自动加上,所以字符常量“b”其实包含两个字符'b' '\0',而把它赋给一个字符变量是不行。 ?...4.忽略了“=”和“==”区别 C语言中,“=”是赋值运算符,“==”是关系运算符。在此代码中,前者是进行比较,后者是进行赋值。 ?...5.忘记加分号 几乎在所有编程语言中,都是用“;”代表一句或多句语句结束。 ? 6.多加分号 ? ? ? 7.忘加地址运算符“&” scanf函数作用是:按照a在内存中地址将a值存进去。...9.输入字符格式与要求不一致 在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。 ? 如输入:a b c 字符“a”赋值给c1,字符“ ”赋值给c2,“b”赋值给c3。

    1.3K10

    C语言常见C语言概念

    目前已知已经有上千种计算机语言,人们们是通过计算机语言程序,给计算机下达指令,让计算机工作C语言就是众多计算机语言⼀种,当然C++/Java/Go/Python都是计算机语言。...exe可执行文件 3.2 编译器对比 常见C语言编译器都有哪些呢?...main函数是程序入口 main函数有且仅有一个 即使一个项⽬中有多个.c文件,但是只能有一个main函数(因为程序入口只能有一个) 第一次写代码,一些常见错误总结: main被写成了mian...为了不再重复实现常见代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同编译器厂商根据标准进行实现,提供给程序员使用。...这种注释一定不能忘记写结束符号 */ ,否则很容易导致错误

    8510

    C语言指针一些常见错误用法

    比如JAVA,java是没有指针,但是很多地方都用到指针,不过不对用户开放,语言自身机制帮用户处理指针分配释放,为就是方便用户使用,减少错误。...不过我们不能因噎废食,指针虽难,但学好了会大大提升你编程能力。 下面来列举一下在学习过程中指针常见错误。 1.指针和指针变量 很多初学者没搞明白这两者区别,以至于很多时候把两者等同了。...在C语言中指针是一个概念性东西,简单而言就是地址。而指针变量是变量类型,属于int,float这类,是用来存放指针,也就是地址。但是很多时候我们说指针时是代指指针变量,这点我们要知道。...字符串个数     {       p[i]=(char*)malloc(sizeof(char)*len));//len 字符个数     }   错误原因:这是很网上多人写法,也是很常见一种错误...5.释放空间 C语言中用free来释放空间,一般用法是:    free(p);//这里释放是p指向空间,存放p内存空间没有被释放。

    1.2K30

    C语言常见错误,95%初学者都会遇到

    但是这种人…万中无一” ——包租婆 对于C语言来说,不少初学者都会遇到各种各种问题,这里小编介绍几个比价常见问题。 一、 错误例子 ? 一、main写成mian(正确应该是:main) ?...错误提示: ? 二、比较中写成:0<a<1(正确应该是:0<a&&a<10) ? 错误提示: ? 三、在for循环后面加了“;”(正确应该去掉“;”) ? 错误提示: ? 二、 总结与思考 ?...读者应该会很容易看懂这几道常见错误,大多数初学者在初期刚刚敲代码时候,不经意间就可能打错代码,这个时候,首先需要看是下面的提示,尽量自己去看,看不懂先百度,只有自己完完全全深入理解了,下次就不会遇到这样问题了...我们常说“学而不思则罔”,和学习编程知识一样,我们只有在学习同时加以总结与思考,才能对编程有更系统和深入地了解,学到知识才真正能为自己所用。

    7643429

    C语言位运算详解:这些常见错误不能犯

    刚学C语言那会儿,谁没遇到过一点小麻烦呢,经常吭哧吭哧写了半天,结果不能实现?why?返回去一个一个检查,眼睛都抽筋了,终于找出了元凶!!!...以后记住了,这些常见错误不能犯,再不用耗时耗力耗眼睛了 ~(^o^)/~   1、书写标识符时,忽略了大小写字母区别。 ...在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写 if (a=3) then … 但C语言中,“=”是赋值运算符,“==”是关系运算符。...由于习惯问题,初学者往往会犯这样错误。   5、忘记加分号。  分号是C语句中不可缺少一部分,语句末尾必须有分号。...scanf(“%s”,&str); C语言编译系统对数组名处理是:数组名代表该数组起始地址,且scanf函数中输入项是字符数组名,不必要再加地址符&。

    1.3K00

    C语言】初识C语言(常见C语言概念)

    语言大致可以分为自然语言和计算机语言,自然语言就是人与人日常交流语言,如汉语、英语、日语等等,计算机语言又可以分为机器语言、汇编语言、高级语言C语言就是一个高级语言 机器语言:就是由二进制01组合起来计算机可以直接识别的程序语言是一种面向机器语言...,比起低级语言易懂易学,可移植性好,编程效率高,但是执行效率没有低级语言高,需要经过编译或解释,C语言就是采用编译一种高级语言 二.为什么选择C语言 C语言常年霸榜各类高级语言前三,属于基础必学语言...,其功能强大,而且许多语言都很相似,如果学好C语言,对学习其他语言也有很大帮助 三.编译器选择 C语言是一门编译型语言,需要依赖编译器将计算机语言转换成机器能够执行机器指令 常见编译器有:msvc...main函数特点有(1)main函数是程序入口(2)main函数有且仅有一个,如果有多个,那么计算机就不知道从哪里进入程序了(3)即使一个项目有多个.c文件,但只能有一个main函数 第一次写代码时常见错误...,按ctrl+k,ctrl+u可以取消注释 总结 以上就是今天所要讲C语言常见概念,下次讲C语言数据类型和变量,如果今天内容有不懂还请在评论区留言,当然,还有许多不足地方也请大家多多指正,谢谢

    9610

    新手最常见10个C语言错误,有人甚至全都中了!

    C语言最大特点是:功能强、使用方便灵活。C编译程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活余地”。...但由于这个灵活给程序调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里错误。...看着有错程序,不知该如何改起,今天元元老师根据多年C语言学习积累了一些C编程时常犯错误,写给各位小伙伴以供参考。 0 书写标识符时,经常不区分字母大小写。...如: main() {  int A=5;  printf("%d",a); } 在C语言编译过程中,变量A和变量a是两个不同变量名,所以在运行时会提示出错信息。...因为在C语言中,“=”是赋值运算符,“==”是关系运算符。

    1.1K20

    c语言常见概念----

    C语言关键字:C语言定义,具有特定含义、专门用于特殊用途C语言标识符,也称为保留字 define不是关键字,是编译器实现,用来定义宏预处理指令,不是C语言内容。...int、struct和continue都是C语言中包含关键字。...abc";//字符串(双引号) 30; 3.14; const int a = 10;//在C语言中,const修饰a,本质是变量,但是不能被修改,有常量属性。...= RED; return 0; } 字符串 c语言里面没有字符串类型 由双引号引起来一串字符成为字符串字面值,简称字符串(常量字符串) 字符串结束标志是一个\0转义字符。...这32个字符是不可打印字符,⽆法打印在屏幕上观察 printf printf是库函数,是c语言标准库中提供现成函数 功能:在屏幕上面打印信息 printf=print+format 意思就是按照格式打印信息

    8810

    C语言常见概念

    C语言就是众多计算机语言一种,当然C++/Java/Go/Python都是计算机语言。 2. C语言历史和辉煌 C语言最初是由Unix系统开发工具而发明。 3....C语言代码放在.c为后缀文件中,要得到最终运行可执行程序,中间要经过编译和链接2个过程 VS2022项目中.c文件 .c文件展示 C语言代码...可执行程序 3.2 编译器对比 C语言是一门编译型计算机语言,需要依赖编译器将计算机语言转换成机器能够执行机器指令。 那我们常见C语言编译器有哪些呢?...main函数是程序入口 main函数有且仅有一个 即使一个项目中有多个.c文件,但是只能有一个main函数(因为程序入口只有一个) 第一次写代码一些常见错误总结: main被写成mian...为了不再重复实现常见代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同编译器厂商根据标准进行实现,提供给程序员使用。

    12810

    常见C语言编程规范

    头文件: 1.头文件中适合放置接口声明,不适合放置实现。 2.头文件应向稳定方向包含,产品依赖于平台,平台依赖于标准库。 3. .c/.h文件禁止包含用不到头文件。...4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开接口。 5.禁止头文件循环依赖。 6.头文件应当自包含(任意一个头文件均可独立编译)。 7.禁止在extern"C"中包含头文件。...9.只能通过包含头文件方式使用其他.c提供接口,禁止在.c中通过extern方式使用外部函数接口、变量。...6.函数调用不要作为另一个函数参数使用,否则对于代码调试、阅读都不利。 7.函数break,return时一定要注意资源释放,比如释放申请内存、释放锁。 8.禁止内存操作越界。...(4)自动存储对象地址不应赋值给其他在第一个对象已经停止存在后仍然保持对象(具有更大作用域对象或者静态对象或者从一个函数返回对象)。

    2.3K20

    常见C编程段错误及对策

    再有一点就是,参数出现错误并非本函数有问题,而是调用者传过来实参有问题。assert 宏可以帮助我们定位错误,而不是排除错误。...二、为指针分配内存太小 为指针分配了内存,但是内存大小不够,导致出现越界错误。...比如下面这种写法就没有结束标志符了: char a[7] = {‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 另外,不要因为char 类型大小为1 个byte 就省略sizof(char)...也就是说,在程序中malloc 使用次数一定要和free 相等,否则必有错误。这种错误主要发生在循环使用malloc 函数时,往往把malloc 和free 次数弄错了。...解决办法是重新设计程序,改善对象之间调用关系。 上面详细讨论了常见六种错误及解决对策,希望读者仔细研读,尽量使自己对每种错误发生原因及预防手段烂熟于胸。

    1.5K41

    C语言进阶篇】动态内存分配六个常见错误

    鸽芷咕:个人主页 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活理想,就是为了理想生活!...文章目录 前言 常见动态内存错误 1️⃣ 对NULL指针解引用操作 ⌨️ 错误原因 解决方法: 2️⃣ 对动态开辟空间越界访问 ⌨️ 错误原因 解决方法: 3️⃣ 对非动态开辟内存使用free...⛳️动态内存分配学完了那么,这些关于内存分配错误你就必须避免了! 本期文章收录在《C语言进阶篇》,大家有兴趣可以看看呐! ⛺️ 欢迎铁汁们 ✔️ 点赞 收藏 ⭐留言 !...注:上一章学习内容是《动态内存分配》 常见动态内存错误 1️⃣ 对NULL指针解引用操作 代码演示: void test() { int* p = (int*)malloc(INT_MAX /...对NULL指针解引用操作 对动态开辟空间越界访问 对非动态开辟内存使用free释放 使用free释放一块动态开辟内存一部分 对同一块动态内存多次释放 ☁️ 好了这些就是常见动态内存分配错误

    30310

    C语言常见程序(三)

    在这里将讲一些有趣程序,首先是用C语言生成一个九九乘法口诀表,并且要求其展现形式要有所不同。首先对九九乘法口诀表进行分析。从横行看有一个乘数都从左向右相加1,另一个乘数不变,从竖行看也是这样。...其中肯定会出现不可预知错误(bug),即输出形式与自己想像中不一样。...不妨自己在演草纸上一步一步写出代码执行过程,这样就能找到错误,或者在适当位置添加相应输出语句,将相应变量或相应代码语句是否执行情况输出到弹出框中。...需要注意是要在输出语句末尾添加换行符,否则很多输出信息都在一行中显示,很难分辨输出信息。这也是为何在做oj(程序设计题)中输入和输出要求都是正确,而提交结果是错误原因。...但是最好别不停重写代码。这样不仅还会出现新错误,而且还浪费时间,效果不是太好。要记住在修改错误过程中也是在提高自己学习计算机语言过程。

    2.5K40

    Go 语言 Slice 陷阱:如何避免常见错误

    前言 Go 语言提供了很多方便数据类型,其中包括 slice。然而,由于 slice 特殊性质,在使用过程中易犯一些错误,如果不注意,可能导致程序出现意外行为。...本文将详细介绍 使用 slice 时易犯一些错误,帮助读者更好使用 Go slice,避免犯错误。...index out of range 错误,例如: func main() { s := make([]int, 0, 4) s[0] = 1 // panic: runtime error...这是因为通过 make([]int, 4) 和 make([]int, 0, 4) 初始化切片,底层所指向数组值是不一样: 第一种初始化方式,切片长度和容量都为 4,底层所指向数组长度也是...小结 本篇文章主要介绍了使用 Go slice 过程中可能会遇到陷阱以及如何避免这些错误,帮助读者更好地使用 Go slice。 关注我,一起学习 Go,一起进步!

    37330

    c语言 switch错误用法,C语言switch语句详细用法

    C语言还为多分支选择提供了另一个switch语句,其一般形式为: 开关(表达式){ 案例常量表达式1: 语句1; 案例常量表达式2: 语句2; … 条件常量表达式n: 语句n; 默认值: 语句n...但是在输入3之后,将执行情况3及以后所有句子c语言 switch语句,并输出星期三及以后所有单词. 这当然是不希望. 为什么会这样?这仅反映了switch语句功能....这与之前介绍if语句完全不同,因此应特别注意. 为避免上述情况,C语言还提供了一个break语句,专用于跳出switch语句. break语句仅具有关键字break,没有参数. 稍后将详细介绍....修改示例程序,在每个case语句之后添加一个break语句c语言 switch语句,以便在每次执行后可以跳出switch语句,以避免输出意外结果....,否则会发生错误.

    1.5K20
    领券