个性化阅读
专注于IT技术分析

c表达式

本文概述

表达式是一个公式,其中操作数通过使用运算符相互链接以计算值。操作数可以是函数引用,变量,数组元素或常量。

让我们来看一个例子:

a-b;

在上面的表达式中,减号(-)是运算符,而a和b是两个操作数。

C中存在四种类型的表达式:

  • 算术表达式
  • 关系表达
  • 逻辑表达式
  • 条件表达式

每种类型的表达式都采用某些类型的操作数,并使用一组特定的运算符。对特定表达式的求值产生特定值。

例如:

x = 9/2 + a-b;

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

算术表达式

算术表达式是由操作数和算术运算符组成的表达式。算术表达式计算类型为int,float或double的值。

当一个表达式仅包含整数操作数时,则称为纯整数表达式;当它仅包含实数操作数时,称为纯实数表达式;当它同时包含整数和实数操作数时,则称为混合模式表达式。

算术表达式的求值

通过一次执行一个运算来评估表达式。运算符的优先级和关联性决定了单个运算的评估顺序。

当执行单个操作时,可能会发生以下情况:

  • 当两个操作数均为整数类型时,将执行算术运算,并且运算结果将为整数值。例如,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;
}

输出量

逻辑表达式

  • 逻辑表达式是计算零或非零值的表达式。
  • 做出决定是一个复杂的测试条件。

让我们看一些逻辑表达式的例子。

逻辑表达式描述
( 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;
}

输出量

让我们看一个简单的“ | |”示例算子

#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;
}

输出量

条件表达式

  • 条件表达式是如果条件为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;
}

输出量


赞(0)
未经允许不得转载:srcmini » c表达式

评论 抢沙发

评论前必须登录!