c语言表达式10 amp 6等于多少,C语言基础——表达式

目录

回顾:

一、定义概念:

二、表达式的分类

举例说明:

(一)首先是加、减、乘、除、取余四种表达式:

(二)一元表达式

(三)强制转换表达式

(四)判断表达式

(五)逻辑表达式

(六)移位表达式

小结

写在最后:

回顾:

在上一篇博客中我们通过一个羞羞的小故事了解了什么“常量”什么是“变量”。我们了解到了变量有什么用,应该怎么使用。对,变量可以用来表示一个常量,可以在使用的过程中重新赋值,多次重复使用。

除此之外,我们通过一个模拟“加法运算”的小程序简单的了解了scanf语句的用法:scanf(“这个双引号中写输入的变量的数据类型(%d或者别的)”,这里写变量的地址(&变量名));例如scanf(“%d %c”, &a, &b);就是输入一个整数a,一个字符b。至于什么是地址?我们暂时不需要了解,在今后学到指针的时候会给大家详细介绍,我们现在只需要知道怎么用。

今天我们学习C语言基础的另一部分内容——表达式。

一、定义概念:

C语言中的表达式一种有值的语法结构,它由运算符将变量、常量、函数调用返回值结合而成。

这个是官方定义,我们用自己的话来说:表达式就是包含“变量”“常量”“运算符”中的一种或者多种组成的式子/语句。

我们举几个例子说明什么是表达式吧:

4;//只包含一个正整数

-6;//只包含一个负整数

4 + 21;//一个加法运算

a * (b + c/d) / 20;//一个四则运算

q=5*2;//乘法运算同时赋值给一个变量

x=++q % 3;//同上

q > 3;//比较表达式

"hello world";//一个字符串

上面写的这些都是合法的表达式,什么叫做合法?就是符合C语言的规定,可以被编译器看明白从而使用。

可以看到一个表达式也可以没有操作符,例如“4”这种形式就是最简单的表达式形式,即最简单的表达式只有一个常量或一个变量名称而没有操作符。

还可以看出,一些表达式是多个较小的表达式的组合,这些小的表达式被称为子表达式(subexpression)。例如表达式c/d是表达式a * (b + c/d) / 20的子表达式,而表达式c和d又是表达式c/d的子表达式。

二、表达式的分类

基本表达式(primary expression)

常量表达式(constant expression)

后缀表达式(postfix expression)

一元表达式(unary expression)

强制转换表达式(cast expression)

乘法表达式(multiplicative expression)

加法表达式(additive expression)

移位表达式(shift expression)

关系表达式(relational expression)

相等表达式(equality expression)

AND表达式(AND expression)

异或表达式(exclusive OR expression)

或表达式(inclusive OR expression)

逻辑与表达式(logical AND expression)

逻辑或表达式(logical OR expression)

条件表达式(conditional expression)

赋值表达式(assignment expression)

举例说明:

(一)首先是加、减、乘、除、取余四种表达式:

代码示例:

#includeint main()

{

printf("1+4=%d\n", 1+4);

printf("5-3=%d\n", 5-3);

printf("2*4=%d\n", 2*4);

printf("5/2=%d\n", 5/2);

printf("5%%2=%d\n", 5%2);

return 0;

}

运行结果:

c040aae6f1755f9cde98c37db23a6828.png

大家注意看最后两个5/2和5%2:

5/2=2,为什么呢?因为我们定义的输出为%d,因此它会自动的输出整数部分,有人会问,要想输出结果为2.5该怎么办呢?有办法,printf(“%.2f”, 5.0/2);大家可以自己尝试一下,.2f表示保留两位小数,这个是可以改变的。

5%2=1,在C语言中% 表示取余数。

(二)一元表达式

定义,只含有一个操作数的表达式称之为一元表达式,例如:5,5++,++5

大家可能有疑问,5++和++5两个都是+1操作,有什么区别呢?先看代码:

#includeint main()

{

int a = 5;

int b = 5;

printf("a++=%d\n", a++);

printf("a=%d\n", a);

printf("++b=\n%d", b++);

printf("b=%d\n", b);

return 0;

}

运行结果:

2f8e6c580437f4369fc2572d2d538bd2.png

大家会发现,两个都是+1操作是没问题的,因为最终a与b都变成了6,但是a++和b++的结果有区别,a++怎么还是等于5?这个时候给大家介绍一下两者区别:++a表示a先加1,这个时候++a=6,因此输出的结果为6,a++表示后加1,因此这个时候a依然为5,输出后再次加1变成6;

(三)强制转换表达式

强制表达式是指将一种数据类型强制转换为别的数据类型,举个例子,代码如下:

#includeint main()

{

float a = 5.3;

printf("保留两位小数a = %.2f\n", a);

printf("强制转换为整数(int)a = %d",int(a));

return 0;

}

运行过结果如下:

4841aa1658d763ddf8c9ed5e80f7ac5e.png

刚好复习一下之前提到的保留几位小数,自动用0填充空位。(int)a 即将a强制转换为整数,我们也可以将强制转换为别的数据类型,大家可以自己尝试。

(四)判断表达式

即判断两个操作数是否相等,判断成立的话返回true(1)。否则返回false(0);这部分在以后学到if语句时会经常用到。

举例:

#includeint main()

{

int a = 5;

int b = 6;

printf("a == b? %d\n", a==b);

printf("a > b? %d\n", a>1);

printf("a < b? %d", a<1);

return 0;

}

运行结果:

4ceb1867f9a7f3ec16092ebd3489097b.png

可以看出来 a>b是成立的,其它不成立

大家注意在C语言中“=”表示赋值“==”用来判断是否相等。

(五)逻辑表达式

即判断两个操作数逻辑是否成立,主要有三种运算“与(&&)、或(||)、非(!)”

int a, b, c;

a = 1;

b = 2;

c = 3;

与表示并且,只有前后两个表达式同时成立才会成立,成立即为true(1),否则为false(0).

举例:

a

或即表示符号前后的表达式有一个成立即为true(1)

举例:

只有a>b || b>c;为假。否则为真

(六)移位表达式

移位运算符即为”>>”(右移)”<

首先要了解在计算机中,所有的数字都会转换成二进制进行运算,什么时二进制?大家如果不了解可以进行百度,如果有需要的话可以单独介绍什么时进制。

举例:

#includeint main()

{

int a = 5;/*对应的二进制为00000101,为什么这么多0?因为C语言中int 类型的数据占8位,不足的位自

动补零;*/

printf("5>>1 右移一位=%d\n", a>>1);

printf("5<<1 左移一位=%d", a<<1);

return 0;

}

运行结果:

4afa0169495aa1b42814c369e1fb576e.png

为什么会这样呢?因为5对应的二进制位00000101,右移一位,空位补0变为00000010,对应的十进制数位2,左移一位,空位补0变为:00001010,对应的十进制数位10。

小结

今天主要聊了一些关于表达式的内容,举得例子比较多,大家需要仔细的体悟,通过修改数等方式将这部分内容牢记于心。表达式是C语言最重要的组成部分之一,在今后的编程中会频繁用到。

OKK,开始不正经了,学习累了可以看看后面的彩蛋。

不要脸求关注,爱你。

写在最后:

有小可爱需要那个什么套路?我可没有,正直老学长从不玩套路。不过可以给大家讲一个小故事。一个男生军训期间没有军训神器,军训脚疼,于是他找到一个可爱甜美善良可爱的女生说:“同学,哪个,可以请你帮个忙吗?”男生摸摸头,很羞涩的说,女孩说:“好啊,同学,请问有什么需要帮助的呢?”男孩儿继续羞涩的说:“就是哪个……”女孩儿无语了说:“你就说啊”,男孩儿低下头就说:“军训鞋垫卖完了,刚来学校我也不认识别的人,你能不能帮我买个……”说完赶紧扭头。女孩儿脸红的说:“嗯”男孩儿得到了女孩儿的微信,并且在军训之余和女孩儿聊天,初入大学,大家的内心都彷徨孤独寂寞,这个时候一个人闯入自己的生活陪自己聊天,仿佛打开了一扇天窗,他们的感情开始升温……军训结束,男孩儿联系女孩儿说:“为了表示感谢,我想请你吃饭,我听说附近的什么什么挺不错的”女孩儿想:这个男生好细心啊,提前了解周围好吃的,还约我吃饭 ,这么礼貌这么暖,军训期间还陪我聊天,拒绝不好吧,这也是大学刚认识的朋友emmm以后我再请回来好了。于是男孩儿女孩儿顺利的吃饭-逛街,逐渐的,,故事自己脑补。

仅以此故事献给广大学弟学妹,本故事纯属虚构,如有雷同,纯属巧合。

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

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

相关文章

python中break与continue使用

1.break的作用&#xff1a;用来结束整个循环&#xff0c;continue的作用&#xff1a;用来结束本次循环&#xff0c;紧接着执行下一次的循环。 2.break/continue只能用在循环中&#xff0c;除此以外不能单独使用。 3.break/continue在嵌套循环中&#xff0c;只对最近的一层循环…

LeetCode 1274. 矩形内船只的数目(分治)

文章目录1. 题目2. 解题1. 题目 (此题是 交互式问题 ) 在用笛卡尔坐标系表示的二维海平面上&#xff0c;有一些船。 每一艘船都在一个整数点上&#xff0c;且每一个整数点最多只有 1 艘船。 有一个函数 Sea.hasShips(topRight, bottomLeft) &#xff0c;输入参数为右上角和…

C语言数组相似度比对,某课程设计---文件相似度判断

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//返回两个文件操作是否都成功return ( result1 && result2 );}//功能:将数据存储到文件内//输入:const char * FileName----想写入数据的文件名// :const char * Data----想写入的数据//输出:无//返回值:布尔型---真表…

图的定义与术语 - 数据结构和算法54

图的定义与术语 让编程改变世界 Change the world by program 在前边讲解的线性表中&#xff0c;每个元素之间只有一个直接前驱和一个直接后继&#xff0c;在树形结构中&#xff0c;数据元素之间是层次关系&#xff0c;并且每一层上的数据元素可能和下一层中多个元素相关&…

c 语言银行排队系统,C++实现银行排队系统

#include #include #include int cnt0; //当日客流量int sum0; //当日客户排队总时间typedef struct pnode{int number;int cometime;int leavetime;struct pnode *next;}*person;typedef struct node{person front;person rear;int length;}linkqueue;linkqueue q[5];int numb…

LeetCode 1152. 用户网站访问行为分析

文章目录1. 题目2. 解题1. 题目 为了评估某网站的用户转化率&#xff0c;我们需要对用户的访问行为进行分析&#xff0c;并建立用户行为模型。 日志文件中已经记录了用户名、访问时间 以及 页面路径。 为了方便分析&#xff0c;日志文件中的 N 条记录已经被解析成三个长度相…

python缺省参数与多个函数返回值

缺省参数 调用函数时&#xff0c;缺省参数的值如果没有传入&#xff0c;则被认为是默认值。 下例会打印默认的age&#xff0c;如果age没有被传入. def printinfo( name,age 35 ): # 打印任何传入的字符串 print "Name: ", name print "Age ", age #调…

如何用c语言制作飞机订票系统,C语言编程飞机订票系统如何设计?

题目&#xff1a;编制一个航空客运订票系统&#xff0c;实现简单的机票操作班级&#xff1a;计0702 姓名&#xff1a;学号&#xff1a; 完成日期&#xff1a;2008年12月20日一、 实验内容&#xff1a;1、问题描述&#xff1a;航空客运订票的业务包括&#xff1a;查询航班、客票…

挖掘有价值的搜索关键词

挖掘有价值的搜索关键词 在对搜索引擎流量及关键词的标记后&#xff0c;还需要从中挖掘最有价值的那部分关键词。以下是关键词挖掘思路和详细的操作方法。 图1 挖掘有价值的搜索关键词 找到一个有价值的关键词&#xff0c;再加上好的搜索排名&#xff0c;就可以给网站带来大量…

LeetCode 1197. 进击的骑士(BFS)

文章目录1. 题目2. 解题1. 题目 一个坐标可以从 -infinity 延伸到 infinity 的 无限大的 棋盘上&#xff0c;你的 骑士 驻扎在坐标为 [0, 0] 的方格里。 骑士的走法和中国象棋中的马相似&#xff0c;走 “日” 字&#xff1a;即先向左&#xff08;或右&#xff09;走 1 格&am…

android在特定时间,如何在Android Oreo的特定时间在Android上发出通知?

我正在寻找一种在“设置”中创建首选项的方法,以便在Android应用中的特定时间(由用户在设置中设置)发送通知.我看过像this这样的不同线程,但是这在Android Oreo中不起作用.有人可以帮我这个或者指点我一个教程吗&#xff1f;解决方法:在查看了不同的帖子和对AlarmManager实现的…

6、使用infowindow

ESRI公司提供的infowindow既美观用实用&#xff0c;而且可定制性强&#xff0c;是时时获取信息的好窗口&#xff0c;用好它可以使工作量大大的减少。 他的使用方法介绍如下&#xff1a; 1、 主要属性 Property Type Description anchor String Placement of the InfoWindo…

python中随机输入数字再排序

代码赏析&#xff1a; a[] while True:umber int(input("请输入您要输入的数字:"))if umber 0:breakelse:a.append(umber) a.sort() print(b)

LeetCode 1167. 连接棒材的最低费用(优先队列+贪心)

文章目录1. 题目2. 解题1. 题目 为了装修新房&#xff0c;你需要加工一些长度为正整数的棒材 sticks。 如果要将长度分别为 X 和 Y 的两根棒材连接在一起&#xff0c;你需要支付 X Y 的费用。 由于施工需要&#xff0c;你必须将所有棒材连接成一根。 返回你把所有棒材 sti…

flyme8会更新Android版本吗,魅族17系列升级Flyme 8.1操作系统:终于到Android 10

原标题&#xff1a;魅族17系列升级Flyme 8.1操作系统&#xff1a;终于到Android 10玩懂手机网资讯&#xff0c;根据魅族官方的消息&#xff0c;魅族17系列终于升级至Android 10&#xff0c;将会搭载 Flyme 8.1 操作系统&#xff0c;魅族官方发布消息表示让欢喜的&#xff0c;更…

python中常见的几种错误

python中常见的几种错误&#xff1a; 1、end前面一定加逗号 2、命令输入错误 3、冒号中英文切换 4、命令缩进错误 5、等于号要双等于&#xff0c;否则一个等于号是赋值 6、命令之间正确搭配

公开发布版的Windows Azure 基础结构服务中的 SQL Server – 文档和最佳实践(已更新),还有即将发布的博客...

一周前&#xff0c;WindowsAzure 刚刚宣布公开发布版的基础结构服务正式推出, 这标志着WindowsAzure从此开始完全支持基础结构即服务&#xff0c;SQL Server是其中的一个主要组件。 预安装的SQL Server VM 可在Windows Azure 库中找到, 按使用的小时数收费。目前&#xff0c;运…

LeetCode 1181. 前后拼接(哈希map)

文章目录1. 题目2. 解题1. 题目 给你一个「短语」列表 phrases&#xff0c;请你帮忙按规则生成拼接后的「新短语」列表。 「短语」&#xff08;phrase&#xff09;是仅由小写英文字母和空格组成的字符串。「短语」的开头和结尾都不会出现空格&#xff0c;「短语」中的空格不会…