何为语句与表达式,C语言中的语句与表达式有什么不同?

如题所述

表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。给与自由变量一些数值指定,可能可以给与一个表达式数值,即使对于一些自由变量的值,表示式或许没有定义。因此,一个表达式代表一个函数,其输入为自由变量的定值,而其输出则为表示式因之后所产生出的数值。
也有人这样解释:
表达式是操作符、操作数和标点符号组成的序列,其目的是用来说明…个计算过程。
表达式可以嵌套,例如: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)是执行某种操作,没有返回值。
关键就在这每个表达式都有一个值!!!
表达式与语句的区别就在于表达式有返回值,语句没有、语句可以包含表达式,表达式加个分号就是语句。

个人见解,有误请指正。
温馨提示:答案为网友推荐,仅供参考
相似回答