-
2021-05-22 16:10:24
表达式:
表达式是操作符、操作数和标点符号组成的序列,其目的是用来说明…个计算过程,
表达式可以嵌套,例如:2+3+(5*sizeof(int))/345。
表达式根据某些约定、求值次序、结合和优先级规则来进行计算。
所谓约定,即类型转换的约定。例如:
float a;
a=5/2;
结果。得到值为2。5/2是整数除法取整, 因为5和2都是整数,不会由于a是float型而轻易改变运算的性质,C语言中表达式和表达式语句的区别》(https://www.unjs.com)。
所谓求值次序,是指表达式中各个操作数的求值次序视编译器不同而不同。见3.9节。
所谓结合性,是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定。例如:
d=a+b-c; //C++规定,加减法先左后右,先做a+b,其结果再减去c
d=a=3; //C++规定,等号是先右后左。先做a=3,其结果再赋给d
所谓优先级,是指不同优先级的操作符,总是先做优先级高的操作。例如:
d=a+b*c; //乘法优先级比加法高。先做b*c,其结果再与a相加
表达式语句:
C++中所有的操作运算都通过表达式来实现。 由表达式组成的语句称为表达式语句。
它由一个表达式后接一个分号“;”组成。
更多相关内容 -
C语言中表达式和表达式语句的区别(什么又叫做表达式)?
2021-05-22 16:11:56满意答案sfuejr222016.01.13采纳率:56%等级:7已帮助:659人表达式:表达式是操作符、操作数和标点符号组成的序列,其目的是用来说明…个计算过程。表达式可以嵌套,例如:2+3+(5*sizeof(int))/345。表达式根据某些...满意答案
sfuejr22
2016.01.13
采纳率:56% 等级:7
已帮助:659人
表达式:
表达式是操作符、操作数和标点符号组成的序列,其目的是用来说明…个计算过程。
表达式可以嵌套,例如:2+3+(5*sizeof(int))/345。
表达式根据某些约定、求值次序、结合和优先级规则来进行计算。
所谓约定,即类型转换的约定。例如:
float a;
a=5/2;
结果。得到值为2。5/2是整数除法取整, 因为5和2都是整数,不会由于a是float型而轻易改变运算的性质。
所谓求值次序,是指表达式中各个操作数的求值次序视编译器不同而不同。见3.9节。
所谓结合性,是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定。例如:
d=a+b-c; //C++规定,加减法先左后右,先做a+b,其结果再减去c
d=a=3; //C++规定,等号是先右后左。先做a=3,其结果再赋给d
所谓优先级,是指不同优先级的操作符,总是先做优先级高的操作。例如:
d=a+b*c; //乘法优先级比加法高。先做b*c,其结果再与a相加
表达式语句:
C++中所有的操作运算都通过表达式来实现。 由表达式组成的语句称为表达式语句。
它由一个表达式后接一个分号“;”组成。
31分享举报
-
何为语句与表达式,C语言中的语句与表达式有什么不同?
2021-05-21 02:45:22何为语句与表达式,C语言中的语句与表达式有什么不同?答案:1信息版本:手机版解决时间 2019-10-03 17:32已解决2019-10-03 03:57何为语句与表达式,C语言中的语句与表达式有什么不同?最佳答案2019-10-03 05:26表达式...何为语句与表达式,C语言中的语句与表达式有什么不同?
答案:1 信息版本:手机版
解决时间 2019-10-03 17:32
已解决
2019-10-03 03:57
何为语句与表达式,C语言中的语句与表达式有什么不同?
最佳答案
2019-10-03 05:26
表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。给与自由变量一些数值指定,可能可以给与一个表达式数值,即使对于一些自由变量的值,表示式或许没有定义。因此,一个表达式代表一个函数,其输入为自由变量的定值,而其输出则为表示式因之后所产生出的数值。
也有人这样解释:
表达式是操作符、操作数和标点符号组成的序列,其目的是用来说明…个计算过程。
表达式可以嵌套,例如:2+3+(5*sizeof(int))/345。
表达式根据某些约定、求值次序、结合和优先级规则来进行计算。
所谓约定,即类型转换的约定。例如:
float a;
a=5/2;
结果。得到值为2。5/2是整数除法取整, 因为5和2都是整数,不会由于a是float型而轻易改变运算的性质。
所谓求值次序,是指表达式中各个操作数的求值次序视编译器不同而不同。见3.9节。
所谓结合性,是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定。例如:
d=a+b-c; //C++规定,加减法先左后右,先做a+b,其结果再减去c
d=a=3; //C++规定,等号是先右后左。先做a=3,其结果再赋给d
所谓优先级,是指不同优先级的操作符,总是先做优先级高的操作。例如:
d=a+b*c; //乘法优先级比加法高。先做b*c,其结果再与a相加
语句指的是当程序运行时执行某个动作的语法结构。它改变变量的值,产生输出,或处理输入。C++ Primer第六章说:语句类似于自然语言中的句子。C++语言既有只完成单一任务的简单语句,也有作为一个单元执行的有一组语句组成的复合语句。
个人认为,和我们说话所说的句子一样的,只是我们写作文用句号结束一个句子,而C++用分号……也就是说,你看到一个分号就表示一个语句。而语句与表达式的区别可以说就在于这个分号。表达式语句——在表达式的末尾加分号就形成了一个表达式语句。
不过简单的讲
"表达式"(expression)是一个单纯的运算过程,总是有返回值;
"语句"(statement)是执行某种操作,没有返回值。
关键就在这每个表达式都有一个值!!!
表达式与语句的区别就在于表达式有返回值,语句没有、语句可以包含表达式,表达式加个分号就是语句。
个人见解,有误请指正。
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯
-
C语言:语句与表达式
2022-01-31 13:24:27在学习C语言的过程中,我们不时会遇到一些代码,如: int a = 3 , b = 4; (a = 0) && (b = 3); 对于一些刚接触C语言的萌新(比如我),也会对上述式子产生疑惑。因为根本不知道是啥意思,更不知道这样的...目录
【问题引入】
在学习C语言的过程中,我们不时会遇到一些代码,如:
int a = 3 , b = 4;
(a = 0) && (b = 3);
对于一些刚接触C语言的萌新(比如我),也会对上述式子产生疑惑。因为根本不知道是啥意思,更不知道这样的操作会对a,b的值产生什么影响。
接下来我会谈谈我的一些想法。(希望大神指正)
【问题分析】
1.表达式(expression):
表达式(expression)是由运算符和运算对象组成(运算对象即运算符操作的对象),就像我们从小学习数学的四则运算一样(当然C语言中运算符远不止四则运算),下面是一些表达式:
4
-6
q = 4 * 5
x = ++q % 3
如你所见,运算对象可以是常量,变量或者两者的组合。一些表达式由子表达式组成(subexpression),上述例子中:++q 就是表达式 x = ++q % 3的子表达式。
每一个表达式都存在一个值
C表达式的一个最重要的特征就是:每一个表达式都存在一个值。我们都知道我们在编写代码时会对变量进行赋值,但是其实表达式也存在一个值,虽然C语言中存在布尔类型(bool),对应true和false两个表达,但在C语言中,我们一定要记住一个“准则”:表达式为真,值为1;表达式为假,值为0。(其实布尔类型的true和false在C语言中分别用1和0表示)
例如我们常见的缩写形式:
if(x)
while(1)......
2.语句(statement):
语句(statement)是C程序的基本构建块。一条语句相当于一条完整的计算机指令。在C语言中,语句一般由分号结尾,我们不妨认为大多数语句就是表达式后加上分号,但这里必须指出,C语言中存在空语句,即:
; //空语句
相信很多小伙伴对这个语句不陌生,我们常常可以在for循环语句中看见,例如;
for( int i = 1 ; i < 99 ; i ++ ) ; //关注末尾的分号
这个分号表示的就是一个空语句,即进行for循环:条件判断,i自增自减,但不进行其他操作。
这里需要指出,不是所有语句都存在一个值,例如上述的for语句 ,换而言之,语句可以存在值(1或者0)。
【练习】
在进行上述的讲解之后,大家可以试试下列的代码:
#include <stdio.h> int main() { int a = 3, b = 3; (a = 0) && (b = 5); printf("a = %d, b = %d\n", a, b); (a = 1) || (b = 5); printf("a = %d, b = %d\n", a, b); (a = 1) && (b = 5); printf("a = %d, b = %d\n", a, b); return 0; }
大家猜一猜,上述三个式子中a,b的值是多少?(需要用到上面表达式的相关知识)
答案:
肯定会有小伙伴感到疑惑,为什么第一个表达式 a = 0 ,b = 3,而不是 a = 0, b = 5呢?
其实当执行完第一个表达式(a = 0)后,0赋值给了a,此时表达式的值也是0,那么显然后续&&的操作就不会执行。那么这里就有伙伴会问,为啥第一个式子和第二个式子中b的值没有改变呢?
那么这里就要设计C语言中一种特殊的求值方式:短路求值。
短路求值又称最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。即在进行逻辑运算时,一旦逻辑运算符前的表达式能够确定真假,那么程序会根据其真假来判断是否执行逻辑运算符后的操作。
这里第二个式子其实就可以理解了。第一个表达式值为1,为真,由于进行 || 运算,那么就没有必要进行后面的运算,所以b的值没有发生改变。同理第一个式子中b的值没有改变也可以理解了。当然第三个表达式肯定难不住大家。
(本人是萌新,若有错请指正)
-
【C语言语法】表达式与语句的区别与联系
2020-05-21 23:37:44这里两个的两个赋值语句竟然可以用逗号分隔。这样就只需要一个分号,可以不加大括号了,太舒服了,因为我个人写代码的习惯就是尽量简洁,能不加大括号那肯定不加。所以逗号和分号到底有什么区别呢? ... -
C语言表达式语句
2021-05-20 06:22:03在其它语言中表达式不能单独存在,而在c语言 中,任何表达式都可以以相应表达式语句的形式存在于程序中。例如:1 i ;2 a—b—c一1;3 x—y一1,x*x y*y;4 sin(O.75);在这里要特别提及两类特殊的表达式语句:赋值... -
浅谈C语言中表达式的求值
2021-05-23 08:53:05该楼层疑似违规已被系统折叠隐藏此楼查看此楼C语言研究性学习的路线现行的多数C语言教材有太多的误区,不仅不能给读者提供有效的学习线索,还常常“误导”读者,于是,“死记硬背”便成了学习C语言的唯一选择。... -
C语言学习总结(五)——表达式和语句
2021-01-31 17:43:44C语言学习总结(五)——表达式和语句 一、表达式 表达式由运算符和运算对象组成,在C语言中每个表达式都有一个值。 二、语句 C把末尾加上一个分号的表达式都看作是一条语句。 复合语句是用花括号括起来的一条或多条... -
C语言赋值表达式
2021-05-22 17:14:02格式: 变量名=表达式说明:在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋给的那个数据。2:赋值表达式例如: a=2+3 就是一个赋值表达式... -
详解C语言中条件判断语句if和switch的用法
2020-12-26 02:07:27这种形式运行顺序为:当条件表达式为真,执行语句1,否则,直接跳过语句1,执行后面的语句。 例子1: BOOL result = YES; if(result) { printf("result is true\n"); } BOOL result = YES; if(result) { printf... -
C语言中逻辑表达式与关系表达式的值
2021-05-18 13:59:35C语言中逻辑表达式与关系表达式的值发布时间:2020-06-18 09:45:57来源:亿速云阅读:104作者:Leah这篇文章将为大家详细讲解有关C语言中逻辑表达式与关系表达式的值,小编觉得挺实用的,因此分享给大家做个参考,... -
C语言的复合语句表达式
2020-07-26 20:10:48看一个例子 int main(void) { int x = 10; int y = 1; int c = ({x;y;}); printf("c = %d\n",c); } 第 5 行,这样写合法吗? 答案是合法,结果输出 1 再比如 ({ int y = foo();...这就是复合语句表达式。 -
C语言运算符和表达式练习题.doc
2020-02-27 19:50:42运算符和表达式 1若有定主int a=11;... 执行语句c=a/b+0.4;后c的值是 3已有定义int x=3; 则表达式x=x+1.78的值是 4已有定义float f=13.8,则表达式(int)f/3的值是 5已有定义double x=3.5; 则表达式x=int -
c语言六种基本语句是什么
2021-05-20 10:07:20c语言六种基本语句是:1、表达式语句;2、标签语句;3、循环语句;4、复合语句;5、跳转语句;6、选择语句。C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。C语句可分为以下五类:1.表达式语句2.... -
C语言中语句种类有哪些?
2021-05-25 05:43:28C语句可分为以下五类:1 表达式语句;2 函数调用语句;3 控制语句;4 复合语句;5 空语句。1) 表达式语句表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;执行表达式语句就是计算表达式的值。例如 c=a+a;2) ... -
C语言——逗号表达式
2021-12-20 18:01:13百度百科:“逗号表达式,是C语言中的逗号运算符,优先级别最低,它将两个及其以上的式子连接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。” 总结基本规则: ①逗号表达将两个及其以上的式... -
C语言逗号表达式在for循环语句中的使用
2022-01-12 21:06:22在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,整个表达式的值是最后一个表达式的值。 例题的答案为20,程序运行结果如下: 可能会有答案算成65,这里的错误点是在括号里面计算时... -
c语言与表达式!(x=0" – 手机爱问
2021-05-20 19:06:04在c语言中,何为条件运算符!具体计算机具有逻辑判断能力,其判断的依据是计算机内部进行逻辑运算的结果。C语言提供了关系运算和逻辑运算,用来构造C程序控制中的条件,实现程序的选择结构和循环结构控制。关系运算和... -
C语言怎样区分表达式和表达式语
2020-03-08 19:57:15表达式后面加一个分号就构成了表达式语句。 为什么要用表达式语句呢?因为我们需要表达式的副作用,而不是它的值。 比如a++;和++a;这条表达式的值对我们来说没什么意义,我们只是单独希望他把a加一而已。 再比如... -
C语言表达式用法快来看看
2022-05-07 00:10:21在C语言中,表达式由操作符和操作数组成。最简单的表达式可以只含有一个操作数。根据表达式所含操作符的个数,可以把表达式分为简单表达式和复杂表达式两种,简单表达式是只含有一个操作符的表达式,而复杂表达式是... -
C语言的表达式与语句
2015-08-06 06:04:22C语言中,表达式是显示如何计算值的公式。语句是C语言的关键特性之一,表示程序运行时执行的命令。本文介绍并示例了C语言中的表达式和语句 -
单片机C语言中的表达式语句及复合语句
2020-04-02 13:55:261. 表达式语句 在表达式的后边加一个分号“;”就构成了表达式语句 ,如: a=++b*9; x=8;y=7; ++k; 可以一行放一个表达式形成表达式语句,也可以一行放多个表达式形成表达式语句,这时每个表达式后面都必须带... -
C语言if语句中表达式的判断
2020-03-07 20:45:24if(表达式),表达式中的等号和赋值号问题 -
C语言问号表达式
2018-05-15 16:43:49问号表达式 (表达式1)?(表达式2):(表达式3)如果表达式1成立则执行表达式2,否则执行...本例中输出结果为5 注意事项问号表达式是从右向左运行例如 int a=8,b=3,c=7; printf("%d",a>b?a&... -
C语言条件表达式(三目运算符)结合性问题
2021-05-20 16:40:14在C语言标准中规定:条件表达式(三目运算符)的结合性是右结合,即自右向左结合比如下面这条语句int i = -2;int n = ++i == 0 ? 99 : i == -1 ? 11 : 22;问题是:n的值是多少?一般理解,根据上面的表达式以及结合性... -
在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式( ) 答案:可用任意表达式
2021-05-21 08:40:24MOOC,C语言,中,参数,main函数,参数,程序,内部,值, 以下,选项,中,C语言,常量, C语言,中,函数,定义,函数,调用, C语言,算术,运算符,中,运算,对象,整数,运算符, 程序控制,语句,C语言,程序,流程,exit, -
解析c语言switch中break语句的具体作用
2020-12-25 20:06:17switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇到break... -
c语言入门教程:表达式和语句.doc
2020-08-24 13:35:36一表达式 前面已经提到过表达式相信大家对表达式也有了一个初步的认识它是由常量变量运算符组合(到以后讲函数时函数也可以是组成表达式的元素)计算以后返回一个结果值表达式的结束标志是分号)C语言中所有的语句和... -
C语言逗号表达式
2018-08-14 12:36:14c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,(a=3*5,a*4)...