同城200带吹电话-免费风楼阁全国约,附近人100块钱,上门服务24小时接单平台

当前位置:首页 >教程首页 > IT 学院 > WEB前端+全栈工程师班 >C语言中不一样的语法结构,你知道几个?

C语言中不一样的语法结构,你知道几个?

发布时间:2019-08-21 08:49:46

要理解一个C 程序,仅仅理解组成该程序的符号是不够的,我们还需要理解这些符号是如何组成声明、表达式、语句和程序的。今天我们就来讨论一下C语言中不一样的语法结构。

1.jpg

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 配对使用,然而在我们写代码时,还是会经常出错,例如如下代码:

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

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答
  • 广州视频剪辑培训机构有哪些

    在广州这座繁华的都市中,数字创意产业正蓬勃发展,广州视频剪辑培训成为许多影视爱好者的理想起点。随着短视频平台和影视制作需求的激......

  • 北京UI设计培训免费试听攻略

    在北京这样一座充满创意活力的都市,UI设计培训正成为无数年轻人追逐职业梦想的跳板。随着数字经济的蓬勃发展,UI设计行业在北京展......

  • 北京平面设计培训机构排名榜

    在当今创意经济蓬勃发展的浪潮中,北京平面设计培训成为众多职业追求者的理想起点。这座城市的活力与机遇吸引着无数人投身视觉艺术领域......

  • 北京虚幻引擎课程内容全解析

    在影视和设计行业蓬勃发展的今天,虚幻引擎作为核心技术工具,正引领着视觉创作的革命。越来越多的人渴望掌握这门技能,而专业的培训成......

  • 北京平面设计课程如何选择适合的

    在北京这座文化创意中心,平面设计培训行业蓬勃发展,为渴望入行的学员提供了丰富机遇。随着数字媒体和影视产业的崛起,掌握视觉传达技......

  • 上海3D建模短训班课程内容解析

    在上海这座充满活力的城市,影视和设计行业正迎来前所未有的发展机遇,数字技术的进步让3D建模成为创意产业的核心驱动力。参加专业的......

×

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定