龙空技术网

C语言程序设计.7.运算符表达式和语句

西虹杰出青年 82

前言:

眼前我们对“c语言程序设计经典例子”大概比较注意,我们都需要剖析一些“c语言程序设计经典例子”的相关资讯。那么小编在网络上汇集了一些关于“c语言程序设计经典例子””的相关资讯,希望看官们能喜欢,大家快快来了解一下吧!

一、表达式

表达式(expression) 由运算符和运算对象组成(前面介绍过, 运算对象是运算符操作的对象) 。 最简单的表达式是一个单独的运算对象, 以此为基础可以建立复杂的表达式。 下面是一些表达式:

4 -6 4+

21

a*(b + c/d)/20

q = 5*2

x = ++q % 3

q > 3

如你所见, 运算对象可以是常量、 变量或二者的组合。 一些表达式由子表达式(subexpression) 组成(子表达式即较小的表达式) 。 例如, c/d是上面例子中a*(b + c/d)/20的子表达式。每个表达式都有一个值。

C 表达式的一个最重要的特性是, 每个表达式都有一个值。 要获得这个值, 必须根据运算符优先级规定的顺序来执行操作。 在上面我们列出的表达式中, 前几个都很清晰明了。 但是, 有赋值运算符(=) 的表达式的值是什么? 这些表达式的值与赋值运算符左侧变量的值相同。 因此, 表达式q = 5*2作为一个整体的值是10。 那么, 表达式q > 3的值是多少? 这种关系表达式的值不是0就是1, 如果条件为真, 表达式的值为1; 如果条件为假, 表达式

的值为0。

二、语句

语句(statement) 是C程序的基本构建块。 一条语句相当于一条完整的计算机指令。 在C中, 大部分语句都以分号结尾。 因此,

legs = 4

只是一个表达式(它可能是一个较大表达式的一部分) , 而下面的代码则是一条语句:

legs = 4;

最简单的语句是空语句:

; //空语句

C把末尾加上一个分号的表达式都看作是一条语句(即, 表达式语句) 。 因此, 像下面这样写也没问题:

8;

3 + 4;

但是, 这些语句在程序中什么也不做, 不算是真正有用的语句。 更确切地说, 语句可以改变值或调用函数:

x = 25;

++x;

y = sqrt(x);

虽然一条语句(或者至少是一条有用的语句) 相当于一条完整的指令,但并不是所有的指令都是语句。 考虑下面的语句:

x = 6 + (y = 5);

该语句中的子表达式y = 5是一条完整的指令, 但是它只是语句的一部分。 因为一条完整的指令不一定是一条语句, 所以分号用于识别在这种情况下的语句(即, 简单语句) 。

#include <stdio.h>

int main(void) /* 计算前20个整数的和 */

{

int count, sum; /* 声明 */

count = 0; /* 表达式语句 */

sum = 0; /* 表达式语句 */

while (count++ < 20) /* 迭代语句 */

sum = sum + count;

printf("sum = %d\n", sum); /* 表达式语句 */

return 0; /* 跳转语句 */

}

三、复合语句

复合语句(compound statement) 是用花括号括起来的一条或多条语句,复合语句也称为块(block) 。 shoes2.c程序使用块让while语句包含多条语句。 比较下面两个程序段:

/* 程序段 1 */

index = 0;

while (index++ < 10)

sam = 10 * index + 2;

printf("sam = %d\n", sam);

/* 程序段 2 */

index = 0;

while (index++ < 10)

{

sam = 10 * index + 2;

printf("sam = %d\n", sam);

}

程序段1, while循环中只有一条赋值表达式语句。 没有花括号, while语句从while这行运行至下一个分号。 循环结束后, printf()函数只会被调用一次。

程序段2, 花括号确保两条语句都是while循环的一部分, 每执行一次循环就调用一次printf()函数。 根据while语句的结构, 整个复合语句被视为一条语句。

标签: #c语言程序设计经典例子 #c语言可执行语句 #c语言如何输入语句 #c语言后面加 #c语言的结束语句有哪些