C语言中,表达式是显示如何计算值的公式。变量是表示程序在运行过程中计算出的值,常量表示不变的值,它们是最简单的表达式。一般地,表达式为运算符和操作数的有效组合。C语言包括丰富的运算符组合,包括算术运算符、关系运算符和逻辑运算符等,对应的表达式也被称为算术表达式,关系表达式,逻辑表达式等。函数是被命名的可执行代码块,具有返回值的函数也可以用在表达式中,把其返回值作为构成表达式的操作数。
语句是C语言的关键特性之一,表示程序运行时执行的命令。C语言标准规定语句以;
结尾,但是对于复合语句,它用大括号{}
将多条语句包裹起来,强制编译器将其当作一条语句处理,结尾不需要;
。
C语言中语句包括以下几种,表达式语句,函数调用语句,复合语句,控制语句和空语句。
;
构成表达式语句。执行完表达式语句后,表达式的值会被丢弃,因此,若表达式不修改操作数的值,表达式语句就没有什么实际意义。对于无意义的表达式语句,使用gcc编译器时,设置-Wall选项,就可以statement with no effect
的警告。一个表达式可以划分为多个子表达式,但是C语言并没有规定子表达式的执行顺序,例如(a+b)*(c+d)
这样的式子就无法保证a+b
是在c+d
之前执行的,因此表达式的值不应依赖于子表达式的执行顺序,否则会出现在编译器间的不兼容问题。/***************************************
* expression.c *
* *
* C语言中的表达式和表达式语句 *
***************************************/
int Sum(int a, int b)
{
return a + b;
}
int main()
{
int a =0;
a; /*变量表达式*/
1; /*常量表达式*/
a + 1; /*算术表达式*/
int b = 0;
b = a; /*赋值表达式*/
a == b; /*关系表达式*/
a && b; /*逻辑表达式*/
a = Sum(a, b); /*函数返回值为赋值表达式的操作数*/
return 0;
}
函数名(实际参数表);
。执行函数调用语句,就是为函数传入实际参数,执行函数中的语句,并根据需要返回值的过程。函数调用语句的返回值也会被丢弃。/*************************************
* function_call.c *
* *
* 函数调用语句 *
*************************************/
#include
int Sum(int a, int b)
{
return a + b;
}
int main()
{
int a = 1;
int b = 2;
/*调用自定义函数,未用返回值*/
Sum(a, b);
/*调用库函数*/
printf("a = %d, b = %d\n", a, b);
return 0;
}
/*************************************
* compount_statement.c *
* *
* C语言中的复合语句 *
*************************************/
#include
int main()
{
int a = 5;
int b = 3;
//复合语句
{
int temp = a;
a = b;
b = temp;
}
printf("a = %d, b = %d\n", a, b);
return 0;
}
if
语句, switch
语句)do while
语句,while
语句, for
语句)break
语句,goto
语句,continue
语句, return
语句)/**************************************
* using_control_statement.c *
* *
* C语言中的控制语句 *
**************************************/
#include
#include
#include
int main()
{
start:
printf("Are you going to play a game? \nEnter 1 as Yes and 0 as No!\n");
short selection = 0;
scanf("%hd", &selection);
/*switch 语句,根据输入值分0,1和其他分别处理*/
switch (selection)
{
case 0:
return 0;
case 1:
break;
default:
printf("Wrong input!\n");
return 0;
}
srand((unsigned)time(NULL));
int goal = rand() % 100;
int guess = 0;
/*while语句*/
while (1)
{
printf("Guess which number in my hand. Enter -1 if you want to stop the game.\nPlease enter your guess: ");
scanf("%d", &guess);
if (guess == -1)
break;
/* if语句,判断条件根据结构进行处理*/
if (guess > goal)
{
printf("Sorry, Your guess is bigger than my number!\n");
}else if (guess < goal)
{
printf("Sorry, Your guess is smaller than my number!\n");
}else
{
printf("Congratulations! You win!\n Enter -2 if you want to play again!");
short isContinued = 0;
scanf("%hd", &isContinued);
if (isContinued == -2)
goto start;
else
break;
}
}
return 0;
}
/***********************************
* empty_statement.c *
* *
* C语言中的空语句 *
***********************************/
int main()
{
int i = 0;
for (; i < 20; i++)
{
/*空语句*/
;
}
return 0;
}