c表达式

本文概述

  • 算术表达式
  • 关系表达
  • 逻辑表达式
  • 条件表达式
表达式是一个公式,其中操作数通过使用运算符相互链接以计算值。操作数可以是函数引用,变量,数组元素或常量。
让我们来看一个例子:
a-b;

在上面的表达式中,减号(-)是运算符,而a和b是两个操作数。
C中存在四种类型的表达式:
  • 算术表达式
  • 关系表达
  • 逻辑表达式
  • 条件表达式
每种类型的表达式都采用某些类型的操作数,并使用一组特定的运算符。对特定表达式的求值产生特定值。
例如:
x = 9/2 + a-b;

上面的整行都是语句,而不是表达式。等于之后的部分是一个表达式。
c表达式

文章图片
算术表达式算术表达式是由操作数和算术运算符组成的表达式。算术表达式计算类型为int,float或double的值。
当一个表达式仅包含整数操作数时,则称为纯整数表达式;当它仅包含实数操作数时,称为纯实数表达式;当它同时包含整数和实数操作数时,则称为混合模式表达式。
算术表达式的求值
通过一次执行一个运算来评估表达式。运算符的优先级和关联性决定了单个运算的评估顺序。
【c表达式】当执行单个操作时,可能会发生以下情况:
  • 当两个操作数均为整数类型时,将执行算术运算,并且运算结果将为整数值。例如,3/2将产生1而不是1.5,因为小数部分将被忽略。
  • 当两个操作数均为float类型时,将执行算术运算,并且运算结果将为实数值。例如,2.0 / 2.0将产生1.0,而不是1。
  • 如果一个操作数是整数类型,而另一个操作数是实数类型,则将执行混合算术。在这种情况下,第一个操作数将转换为实数操作数,然后执行算术运算以产生实数值。例如,6 / 2.0将产生3.0,因为将6的第一个值转换为6.0,然后执行算术以产生3.0。
让我们通过一个例子来理解。

表达评估每个操作的说明
6*2/( 2+1 * 2/3 +6) +8 * (8/4)给出了一个表达式。
6*2/(2+2/3 + 6) + 8 * (8/4)2乘以1, 得到值2。
6*2/(2+0+6) + 8 * (8/4)2除以3, 得到值0。
6*2/ 8+ 8 * (8/4)将2加到6, 得出值8。
6*2/8 + 8 * 28除以4, 得到值2。
12/8 +8 * 26乘以2, 得到值12。
1 + 8 * 212除以8, 得到值1。
1 + 168乘以2, 得到值16。
17将1加到16, 得到值17。
关系表达
  • 关系表达式是用于比较两个操作数的表达式。
  • 这是用于决定是否应采取措施的条件。
  • 在关系表达式中,数字值不能与字符串值进行比较。
  • 关系表达式的结果可以是零或非零值。在此,零值等效于false,非零值等效于true。
关系表达描述
x%2 = = 0此条件用于检查x是否为偶数。如果x是偶数, 则关系表达式的结果为1, 否则为0。
a!=b用于检查a是否不等于b。如果a不等于b, 则此关系表达式的结果为1, 否则为0。
a+b = = x+y 用于检查表达式“ a b”是否等于表达式“ x y”。
a> =9用于检查a的值是否大于或等于9。
让我们看一个简单的例子:
#include < stdio.h> int main() {int x=4; if(x%2==0) { printf("The number x is even"); } else printf("The number x is not even"); return 0; }

输出量
c表达式

文章图片
逻辑表达式
  • 逻辑表达式是计算零或非零值的表达式。
  • 做出决定是一个复杂的测试条件。
让我们看一些逻辑表达式的例子。
逻辑表达式描述
( x > 4 ) & & ( x < 6 )这是一个测试条件, 用于检查x是否大于4并且x小于6。仅当两个条件都为真时, 条件的结果才为真。
x > 10 || y < 11这是一个用于检查x是否大于10或y小于11的测试条件。如果两个条件中的任何一个都为真值, 则测试条件的结果为true。
! ( x > 10 ) & & ( y = = 2 )这是一个测试条件, 用于检查x是否不大于10并且y等于2。如果两个条件都为真, 则条件的结果为true。
让我们来看一个简单的“
#include < stdio.h> int main() { int x = 4; int y = 10; if ( (x < 10) & & (y>5)) { printf("Condition is true"); } else printf("Condition is false"); return 0; }

输出量
c表达式

文章图片
让我们看一个简单的“ | |”示例算子
#include < stdio.h> int main() { int x = 4; int y = 9; if ( (x < 6) || (y>10)) { printf("Condition is true"); } else printf("Condition is false"); return 0; }

输出量
c表达式

文章图片
条件表达式
  • 条件表达式是如果条件为true则返回1的表达式,否则返回0。
  • 条件运算符也称为三元运算符。
条件运算符的语法
假设exp1,exp2和exp3是三个表达式。
exp1吗? exp2:exp3
上面的表达式是一个基于exp1表达式的值进行评估的条件表达式。如果表达式exp1的条件成立,则最终条件表达式由exp2表示,否则由exp3表示。
让我们通过一个简单的例子来理解。
#include< stdio.h> #include< string.h> int main() { int age = 25; char status; status = (age>22) ? 'M': 'U'; if(status == 'M') printf("Married"); else printf("Unmarried"); return 0; }

输出量
c表达式

文章图片

    推荐阅读