第五章 运算符、表达式和语句

注解

本章介绍如下内容:
  • 关键字 while、typedef
  • 运算符 =、-、*、/、%、++、--、类型名
  • C语言的各种运算符,包括用于普通数学运算的运算符
  • 运算符优先级以及语句、表达式含义
  • while循环
  • 复合语句、自动类型转换和强制类型转换
  • 如何编写带参数的函数

5.1 循环简介

程序清单 5.1 shoesl.c 程序

// shoesl.c 
#include <stdio.h>
#define ADJUST 7.31

int main(void){
    const double SCALE = 0.33
    double shoe, foot;

    shoe = 9.0;

    printf("%10.1f %12.5f inches \n",shoe,foot);
    return 0;
}

该程序使用了#define指令创建符号常量和用const限定符创建在程序运行中不可更改的变量。

循环程序:

while(shoe<18.5){
    shoe++;
}

5.2基本运算符

C用运算符表示算术运算。

5.2.1 赋值运算符

hmw = 2002;

5.2.2 加法运算符: +

4+20 ;

5.2.3 减法运算符 -

a = 50-5;

5.2.4 符号运算符 +和-

a = -12;
b = +12;

5.2.5 乘法运算符

a = 2*5;

5.2.6 除法运算符

a = 5.00/2.00

5.2.7 运算符优先级

跟数学里的一样没必要讲

5.2.8 优先级和求值顺序

5.3 其他运算符

5.3.1 sizeof 运算符和 size_t 类型

sizeof运算符以字节为单位返回运算对象的大小或类型。如果运算符对象是类型则必须用个括号括起来。

C语言规定,sizeof返回size_t类型的值。这是一个无符号整数类型。C有一个typedef机制,允许你程序员为现有类型创建别名:

typedef double real;
这样real就是double的别名
real deal;

5.3.2 求模运算符

略 %符号 和数学里的一样 取余数

5.3.3 递增运算符++

i++;

5.3.4 递减运算符

i--;

5.3.5 优先级

递增运算符和递减运算符都是很高的结合优先级。只有括号比它们高。

5.3.6 不要自作聪明

如果一次用太多递增运算符,自己都会糊涂。

5.4 表达式

5.5 类型转换

5.5.1 强制类型转换

nice = (int)1.5+(int)1.7
nice=2

5.6 带参数的函数

//filename: pound.c

#include <stdio.h>
void pound(int n);

int main(void){
    int time = 5;
    char ch = '!';  //ASCII码为33;
    float f = 6.0f;

    pound(time);
    pound(ch);      //pound((int)ch)
    pound(f);       //pound((int)f)

    return 0;
}

void pound(int n){
    while(n-- > 0)
        printf("#");
    printf("\n");
}

5.7 示例程序

5.8 关键概念

C通过运算符提供多种操作。每个运算符的特性包括运算对象的数量、优先级和结合律。当两个运算符共享一个运算对象时,优先级和结合律决定了;额先进性哪像运算。每个C表达式都有一个值。如果不了解运算符和优先级,写出的表达式可能不合法或者表达式的值与预期不符。

5.9 本章小结

C语言有许多运算符,本章讨论了赋值运算符和算术运算符。

表达式由运算符和运算对象组成。每个表达式都有一个值,包括赋值表达式和比较表达式。运算符优先级规则决定了表达式中各项的求值顺序。

5.10 复习题

5.11编程练习

如果对您有用,请我喝杯咖啡吧。

赞助扫码::
../../../_images/apay.jpg ../../../_images/pay_wechat.png