Press "Enter" to skip to content

运算符、表达式和语句

C语言使用运算符来提供多种服务。

每个运算符的特性包括所需操作数的数量、优先级和结合性。当两个运算符共享一个操作数时,最后的两个特性决定了先应用那个运算符。运算符与值结合可以产生表达式,并且C的每一个表达式都有一个值。C允许写出将不同的数值类型组合在一起的表达式。但算术运算要求操作数是同一类型的,所以C进行自动转换。然而,不依赖于自动转换是一个很好的编程习惯。

C有多种运算符,比如赋值和算术运算符。

带一个操作数的运算符(例如负号和sizeof)被称为一元运算符。要求两个操作数的(例如加法和乘法运算符)被称为二元运算符。

表达式是运算符和操作数的组合。

运算符优先级的规则帮助决定当对表达式进行求值时,如何组合表达式的各项。如果运算符有相同的优先级,结合性决定那个运算符先被应用。语句市对计算机的完整指示,在C中使用分号标识。

//min_sec.c -- 把秒转换为分钟和秒
#include<stdio.h>
#define SEC_PER_MIN 60  //定义常量值为每分钟60秒
int main(void){
    int sec,min,left;

    printf("Convert seconds to minutes and seconds!\n");
    printf("Enter the number of seconds(<=0 to quit):\n");
    scanf("%d",&sec);

    while(sec>0){
        min = sec / SEC_PER_MIN;
        left = sec % SEC_PER_MIN;
        /*取模运算(modulus operator)用于整数运算。
        * 该运算符计算出用它右边的整数去除它左边的整数得到的余数。
        * 例如,13%5所得值为3,因为13除以5得2并余3。
         */
        printf("%d seconds is %d minutes. %d seconds\n", sec, min, left);
        printf("Enter next value (<=0 to quit):\n");
        scanf("%d",&sec);
    }
    printf("Done!\n");

    return 0;   
}