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,一经查实,立即删除!

相关文章

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

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

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

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

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…

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、命令之间正确搭配

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

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

Android设置text按钮,安卓基础控件使用(TextView、Button、ImageView、EditText)

一、文本控件TextView1.布局文件android:text"string/content"android:layout_width"wrap_content"android:layout_height"wrap_content"android:textColor"color/green"android:textSize"dimen/title"android:lines"1…

LeetCode 1135. 最低成本联通所有城市(最小生成树+排序+并查集)

文章目录1. 题目2. 解题1. Kruskal2. prim1. 题目 想象一下你是个城市基建规划者&#xff0c;地图上有 N 座城市&#xff0c;它们按以 1 到 N 的次序编号。 给你一些可连接的选项 conections&#xff0c;其中每个选项 conections[i] [city1, city2, cost] 表示将城市 city1 …

LeetCode 1057. 校园自行车分配(map有序+贪心)

文章目录1. 题目2. 解题1. 题目 在由 2D 网格表示的校园里有 n 位工人&#xff08;worker&#xff09;和 m 辆自行车&#xff08;bike&#xff09;&#xff0c;n < m。所有工人和自行车的位置都用网格上的 2D 坐标表示。 我们需要为每位工人分配一辆自行车。在所有可用的自…

linux配ipv6 ipv4 双栈,RouterOS配置原生IPv6(电信IPv4/IPv6双栈)

无意中发现江苏(苏州)电信的原生IPv6改为有状态的IPv6&#xff0c;那么我使用的RouterOS软路由(以下简称ROS)就可以获取到IPv6的地址了&#xff0c;所以又可以折腾了一波。一、IPv6介绍IPv6的地址共有128位&#xff0c;也就是IPv6地址总量一共有2的128次方个地址。/32、/48是IP…

LeetCode 555. 分割连接字符串

文章目录1. 题目2. 解题1. 题目 给定一个字符串列表&#xff0c;你可以将这些字符串连接成一个循环字符串&#xff0c;对于每个字符串&#xff0c;你可以选择是否翻转它。 在所有可能的循环字符串中&#xff0c;你需要分割循环字符串&#xff08;这将使循环字符串变成一个常规…

LeetCode 314. 二叉树的垂直遍历(BFS/DFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 给定一个二叉树&#xff0c;返回其结点 垂直方向&#xff08;从上到下&#xff0c;逐列&#xff09;遍历的值。 如果两个结点在同一行和列&#xff0c;那么顺序则为 从左到右。 示例 1&#xff1a; 输入: [3,9,20,null,null,15…