iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言的使用陷阱有哪些
  • 801
分享到

C语言的使用陷阱有哪些

2023-06-16 23:06:59 801人浏览 薄情痞子
摘要

这篇文章主要讲解了“C语言的使用陷阱有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的使用陷阱有哪些”吧!1. 正确理解函数声明你是否见过这样的代码“(*(void(*)())0)

这篇文章主要讲解了“C语言的使用陷阱有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的使用陷阱有哪些”吧!

1. 正确理解函数声明

你是否见过这样的代码“(*(void(*)())0)();”,你能知道这是上面意思吗?

看不懂不用担心,下面我们来分析一下:任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符(declarator)。声明符从表面上看鱼表发挥有些类似,对他就只应该返回一个声明给定的结果。(void  (*)()0)是将常数0 转型为“指向返回值为void  的函数的指针”类型。而(*(void(*)())0)();就可以看成是一个函数调用,末尾的分号使得表达式成为一个语句。当然我们也可以使用typedef来世表达式更加清晰:

typedef void (*funcptr)(); (*(funcptr)0)();

2. 运算符的优先级问题

在  C语言中,运算符优先级有15个之多,如果不知道运算符的优先级我们在处理问题,分析代码时,就非常被动,那么我们可以对运算符进行简单的分组,了解各组运算符之间的相对优先级,那么记起来就相对简单了,可以简单的记做:!>  算术运算符 > 关系运算符>&&>|| > 赋值运算符。

3. 语句结束符的分号问题

C语言以分号“;”,作为语句结束的标志,那么如果在表达式后多写了分号,会出现什么结果呢?这个分号也许会被视作一个不会产生任何实际效果的空语句,或者编译器会因为这个多余的分号产生一条警告信息,可以根据警告信息去掉这个分号。但一个例外就是在if  或者while语句之后多写一个分号,此时原来在if或者while之后的语句即使一条单独的语句,鱼条件判断没有了任何关系。请看一下代码:

If(x > y)return; If(x > y);return;

这两句完全是不一样的。

4. Switch 语句问题

C语言中的switch,在case分支后都需要添加一个break;语句,不然会已知顺着语句执行下去,达不到我们需要的效果。

5. 函数调用

与其他程序设计语言不同,C语言要求:在函数调用时及时函数不带参数,也应该包含参数列表,因此,如果f  是一个函数,f();一个函数调用,而f;却是一个什么也不做的语句。

6. else 悬挂问题

我们经常听到说else要和if 配对使用,然而在我们写代码时,还是会经常出错,例如如下代码:

C语言的使用陷阱有哪些

这段代码的本意是分为两种情况,x 等于0 不等于0,然而上面的代码表达的意思却截然不同。即 想不等于0,程序不做处理,x  等于0时,判断y的值,做出不同的处理。

感谢各位的阅读,以上就是“C语言的使用陷阱有哪些”的内容了,经过本文的学习后,相信大家对C语言的使用陷阱有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言的使用陷阱有哪些

本文链接: https://www.lsjlt.com/news/285744.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言的使用陷阱有哪些
    这篇文章主要讲解了“C语言的使用陷阱有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的使用陷阱有哪些”吧!1. 正确理解函数声明你是否见过这样的代码“(*(void(*)())0)...
    99+
    2023-06-16
  • python使用语句的常见陷阱有哪些
    这篇文章主要为大家展示了“python使用语句的常见陷阱有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python使用语句的常见陷阱有哪些”这篇文章吧。1、冗余input语句的冗余使用,这...
    99+
    2023-06-20
  • 有哪些C++陷阱与套路
    这篇文章主要讲解了“有哪些C++陷阱与套路”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些C++陷阱与套路”吧!# 一、导语C++是一门被广泛使用的系统级编程语言,更是高性能后端标准开发...
    99+
    2023-06-16
  • Go语言开发中常见的陷阱有哪些
    今天小编给大家分享一下Go语言开发中常见的陷阱有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2024-04-02
  • C语言之陷阱与缺陷详解
    目录一、前言二、字符指针三、边界计算与不对称边界1.经典错误①2.经典错误②3、小结四、求值顺序五、运算符&& ||和!总结一、前言 二、字符指针 结论一:复制指...
    99+
    2024-04-02
  • MySQL陷阱有哪些
    小编给大家分享一下MySQL陷阱有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、根深蒂固的bugs任何大的软件包都有 b...
    99+
    2024-04-02
  • JavaScript中this陷阱有哪些
    这篇文章主要为大家展示了“JavaScript中this陷阱有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中this陷阱有哪些”这篇文...
    99+
    2024-04-02
  • Python陷阱与缺陷列表有哪些
    本篇内容主要讲解“Python陷阱与缺陷列表有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python陷阱与缺陷列表有哪些”吧!比如,Python程序员应该都遇到过的“UnboundLoc...
    99+
    2023-06-02
  • MySQL中主键与rowid的使用陷阱有哪些
    这篇文章主要为大家展示了“MySQL中主键与rowid的使用陷阱有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中主键与rowid的使用陷阱有哪些...
    99+
    2024-04-02
  • JavaScript中常见的陷阱有哪些
    这篇文章主要讲解了“JavaScript中常见的陷阱有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中常见的陷阱有哪些”吧!1. ...
    99+
    2024-04-02
  • C/C++返回内部静态成员的陷阱有哪些
    这篇文章主要介绍“C/C++返回内部静态成员的陷阱有哪些”,在日常操作中,相信很多人在C/C++返回内部静态成员的陷阱有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C/C++返回内部静态成员的陷阱有哪些...
    99+
    2023-06-17
  • NoSQL数据库的陷阱有哪些
    本篇内容介绍了“NoSQL数据库的陷阱有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Schema管理...
    99+
    2024-04-02
  • C语言语义陷阱超详细梳理总结
    目录1 指针与数组2 非数组的指针3 作为参数的数组声明4 空指针并非空字符串5 边界计算与不对称边界6 求值顺序7 整数溢出8 为函数提供返回值1 指针与数组 C语言中只...
    99+
    2024-04-02
  • 香港服务器租用的陷阱有哪些
    香港服务器租用的陷阱有:1、服务器以次充好,不知名的小主机商提供质量不过关的产品和服务,包括服务器的硬件、带宽、电力供应、机房环境等;2、服务器机房环境差,无法保证恒温恒湿,对噪音、电力、电源、防水、防震、防火、防雷等调控;3、售后服务虚假...
    99+
    2024-04-02
  • 香港cn2空间租用的陷阱有哪些
    香港cn2空间租用的陷阱有:1、以次充好,不知名的小主机商提供质量不过关的产品和服务,包括服务器的硬件、带宽、电力供应、机房环境等;2、机房环境差,无法保证恒温恒湿,对噪音、电力、电源、防水、防震、防火、防雷等调控;3、售后服务虚假承诺,如...
    99+
    2024-04-02
  • PHP 多语言支持的常见陷阱和陷阱:提前避坑
    陷阱: 使用不同的编码(如 UTF-8、UTF-16)存储或显示文本时,可能会导致字符损坏或乱码。 对策: 在整个应用程序中始终使用一致的编码,并使用适当的编码转换函数。 2. 字符集支持 陷阱: PHP 并非支持所有字符集。如果应...
    99+
    2024-04-02
  • C语言陷阱与缺陷之数组越界访问详解
    目录1.问题引入2、问题分析(1)理论分析(2)调试验证总结1.问题引入 一道经典的笔试题来了,请做好准备!!! 试问以下代码在Visual studio 2019环境下执行结果?原...
    99+
    2024-04-02
  • Flex数据绑定陷阱有哪些
    这篇文章主要为大家展示了“Flex数据绑定陷阱有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex数据绑定陷阱有哪些”这篇文章吧。Flex数据绑定陷阱◆Usingbindinginpla...
    99+
    2023-06-17
  • C++ 函数错误处理中常见陷阱有哪些?
    c++++ 函数错误处理的常见陷阱包括:过度使用异常跳过错误检查释放资源不当不检查函数参数的有效性忽略警告将错误混入数据避免这些陷阱可确保编写可靠、可维护的 c++ 代码。 C++ 函...
    99+
    2024-04-23
    c++ 错误处理
  • SQL面试的技巧和陷阱有哪些
    本篇内容介绍了“SQL面试的技巧和陷阱有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!提问要拿下一场S...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作