分号是个很不起眼的东西,但在C语言编程里面,它的作用不可忽视,多写与漏写都会造成不可预料的错误,下面就列举一些常见的错误。

1、多谢了分号
if或while语句块内如果只有一条语句,那么可以省略大括号的书写,然而,当他们的条件判断框后面不小心加了一个”;”时,会使本来想要在if或while条件成立时执行的语句替换成了一个空语句,把原来要执行的语句“挤到了”if或while语句块外面,使其不管if或while的条件成立与否,都会执行

int main()
{int a = 0;if (a == 0);printf("a = %d\n", a);printf("a != 0, a = %d\n", a);system("pause");return 0;
}

上面程序的本意是当a = 0时,输出a = 0;当a != 时,输出a != 0,a = n(n是此时a的值)
但因为if的判断框(一对())后面多写了一个“;”,编译器就把”;“这个空语句当做了它后面要执行的语句,使printf(“a = %d\n”, a);无论如何都会执行,改变了程序的初衷。

2、漏写了分号
①当一个自定义的类型在定义时忘了在结尾加上分号,且它的下面跟的是一个没有写返回值的函数时,那么编译器会误把这个自定义的类型当成函数的返回值类型,造成不可预料的错误

struct P
{char c;int i;double d;
}
fun()
{printf("fun()是一个无参无返回值的函数\n");return;
}

上面这段代码,函数fun()在设计时是不给返回值的,然而因为定义结构体类型时忘记在结尾处加分号了,使此结构体类型成了函数fun()的返回值类型。

②少了一个分号使函数的返回值发生改变,并对函数逻辑发生错误。

    int a = 0;if (a == 0)returna += 10;a -= 10;a *= 10;a /= 10;

假定上面的代码是一个函数的一部分,那么本意是当a = 0时,函数直接返回调用函数,a != 0 时,函数执行return下面的四条语句,但因为return后面漏写了分号,错误的把a += 10作为返回值,使a = 0时返回10,当a != 0时,函数也只能执行a += 10/下面的三条语句。使函数的逻辑发生了很大的改变。

分号不是个“随便的人”相关推荐

  1. 公司随便开除人能够解决问题吗?(转载)

    转载于:https://www.cnblogs.com/dylancao/p/10658276.html 最近和别的公司打交道多了,就遇到很多事情,最近和两个创业公司打交道的时候,都遇到了相同的问题, ...

  2. 公司随便开除人能够解决问题吗?

    最近和别的公司打交道多了,就遇到很多事情,最近和两个创业公司打交道的时候,都遇到了相同的问题,这个问题太典型了,所以拿出来和大家分享一下. 两家公司都是初创型的公司,并且都是技术型的,创始人都是业务出 ...

  3. 怎么会这样!超声刀两年后面部塌陷,超声刀失败可以补救吗,让人头大!不要啊

    怎么会这样!超声刀两年后面部塌陷,超声刀失败可以补救吗,让人头大!不要啊 近年来美容的超声刀的发展如火如荼,广大爱美的小哥哥小姐姐也对这种特殊的"刀"跃跃欲试,于是也就伴随着出现了 ...

  4. 技术水平的确很高,正规公司为什么还是不录用这些人(技术水平不高的更不可能)

    时间宝贵的.建议直接看评论,评论往往比文章更精彩!反对的.希望不要点击.阅读量过大导致总想写上几篇文章上来,不能怪总发表首页文章. 最近2个月公司一直在招聘.NET开发人员,接下来的一年里,公司也会一 ...

  5. 如何使人变得心胸宽广

    我觉得要做事,先做人!要做人,心必宽. 这是原文连接:http://sexwithwangting.blog.163.com/blog/static/424962642009102143743965/ ...

  6. 如何变成一个有趣的人

    我本想写如何变成有钱的人,但是这个似乎没资格讨论这个话题,因为读到一篇文章关于这个话题,于是我想对这个话题谈谈我的见解. 要说怎么有趣,先要知道什么是有趣,变成有趣的人 ,你觉得自己是吗? 一 怎么做 ...

  7. 技术水平的确很高,正规公司为什么还是不录用这些人(注技术不好的更没戏)

    时间宝贵的.建议直接看评论,评论往往比文章更精彩!反对的.希望不要点击.阅读量过大导致总想写上几篇文章上来,不能怪总发表首页文章. 最近2个月公司一直在招聘.NET开发人员,接下来的一年里,公司也会一 ...

  8. 初来乍到,IT职场人,有些黑话要先了解(IT行业常用术语缩写)

    文章目录 日常黑话 工作黑话 日常黑话 OKR:Objectives and Key Results,直译为目标和关键成果.OKR可以理解为是一种自下而上的管理方式,员工制定目标,然后去执行,员工的目 ...

  9. 牵了手就不要随便分手

    牵了手就不要随便分手     本帖子共有回复 607 篇             作者:渝   (2005-12-12 17:22) 回复留言 1 回复:牵了手就不要随便分手         春蚕破壳 ...

最新文章

  1. 提高页面载入速度简单易行的四个办法。
  2. java中static、final、static final的区别
  3. class12_pack_grid_place 放置位置
  4. 状态压缩 之 UVA 10944 - Nuts for nuts..
  5. 28 PP配置-生产车间控制-工序-定义报工屏幕默认值
  6. 羡慕不来!华为高价招揽人才:应届博士年薪最高201万元
  7. linux 云主机安装方法,虚拟主机linux服务器安装教程
  8. mysql config type_mysql_config_editor用法举例
  9. 【CCCC】L2-001 紧急救援 (25分),,Dijkstra标准模板(多路径,最大点权和路径打印)
  10. BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
  11. 被替换的项目不是替换值长度的倍数_机器学习中处理缺失值的9种方法
  12. 「开源资讯」浏览器中可以深度学习的框架Paddle.js 1.0 发布
  13. LaTeX 阿拉伯语
  14. react 如何引入打印控件 CLodop
  15. 基于MATLAB的车牌识别实现
  16. Windows命令之tracert命令
  17. matlab如何找出相似的图,图像相似性搜索的MATLAB实现
  18. 备战金九银十!2022Java面试必刷461道大厂架构面试真题汇总+面经+简历模板都放这了,注意划重点!!
  19. 如何简单快速去掉电脑桌面图标上的小箭头
  20. Qt5示例addressBook源码解析

热门文章

  1. 容器环境自建数据库、中间件一键接入阿里云 Prometheus 监控
  2. AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示
  3. 阿里云全球首推流量型独享虚拟主机新规格,网络访问速度最高提升400%
  4. Web3.0 兴起之际,元宇宙这杯羹怎么分?
  5. 泪目!连拿3份 offer,AI 程序员求职经历火爆 IT圈!
  6. Nutanix,在转型的道路上越走越远 | 人物志
  7. 云存储精华问答 | 如何选择混合云提供商?
  8. Docker精华问答 | 如何让一个容器连接两个网络?
  9. 云漫圈 | 革命版互联网公司虐恋大戏,周一拿去怼业务!
  10. context的使用