深入了解C语言表达式与语句
大家好,我是程序员Feri,拥有超过12年的编程经验。我不仅参与过众多开发项目、带领过团队,还进行过创业。我擅长Java、鸿蒙、嵌入式、人工智能等多个领域的开发。在这里,我专注于和大家分享程序员成长过程中的那些事儿,希望在成长的道路上能与你相伴,一起朝着目标勇往直前!
1 表达式
表达式是由数字、算符、数字分组符号(括号)、自由变量和约束变量等按照能求得数值的有意义排列方法组合而成的。在C语言里,表达式由操作数(像变量、常量)和运算符构成,最终会产生一个值。
表达式的种类丰富多样,常见的有:
-
算术表达式
-
赋值表达式
-
关系表达式
-
逻辑表达式
-
位运算表达式
-
条件表达式
-
逗号表达式
1.1 算术表达式
算术表达式主要用于执行基本的数学运算。下面是一个示例代码,展示了加法、减法、乘法、除法、取模以及自增自减运算的使用:
//算术表达式
void f1(){
int a = 5, b = 3;
// 加法
int add_result = a + b;
// 减法
int sub_result = a - b;
// 乘法
int mul_result = a * b;
// 除法
int div_result = a / b;
// 取模
int mod_result = a % b;
printf("加法结果: %d\n", add_result);
printf("减法结果: %d\n", sub_result);
printf("乘法结果: %d\n", mul_result);
printf("除法结果: %d\n", div_result);
printf("取模结果: %d\n", mod_result);
//++ 在前 先自增 后输出
printf("自增结果: %d\n", ++a);
//-- 在后 先输出 后自减
printf("自减结果: %d\n", b--);
}
为了帮助大家更好地理解算术表达式,这里有一道思考题:
//算术表达式 常见的试题分析
void t1(){
int a = 5;
double b = 2.5;
int c = 3;
int d = 4;
double result;
result = (a + (int)(b * c)) / (double)(d - 1) + (a % c) * (b + d);
//思考题 结果是多少?怎么分析得来的呢
printf("表达式的结果是: %lf\n", result);
}
你可以试着分析一下这个表达式的计算结果,思考其计算过程。
1.2 关系表达式
关系表达式由数值和关系操作符连接而成,在后续编程中会经常用到。每个关系表达式的结果要么为真,要么为假。在C语言里,用0表示假,非零表示真。
例如,有 int x = 16;
,那么 10 < x < 30
这个表达式的结果是怎样的呢?答案是永远为真。不管 x
的值是多少,哪怕是50,该表达式的结果依旧为真。
这是因为在编译器眼中,表达式是从左往右依次执行的。先执行 10 < x
,若为真则返回1,接着判断 1 < 30
,结果还是真;若 10 < x
为假,则返回0,再判断 0 < 30
,结果同样为真。
所以,如果要判断一个数是否在10到30之间,不能写成 10 < x < 30
,而应该写成 x > 10 && x < 30
,这样才能分别独立地进行两次判断,只有当两个条件都为真时,结果才为真。
下面是一个关系表达式的示例代码:
//关系表达式
void f2(){
int a = 5, b = 3, c = 7, d = 2;
int result;
// 判断 a 是否大于 b 且 c 是否大于 d,或者 a 是否等于 c 且 b 是否等于 d
result = ((a > b) && (c > d))
|| ((a == c) && (b == d));
printf("结果: %d\n", result);
printf("结果: %s\n", result==1?"true":"false");
}
现在来做一道练习题:
float x = 3.5, y = 2.1, z = 4.2;
// 判断 x 是否大于 y 且 z 是否小于等于 x 与 y 的和
int result = (x > y) && (z <= (x + y));
你能算出 result
的最终结果吗?
其他类型的表达式这里就不再详细演示了。
2 语句
在C语言中,语句相当于给计算机下达的完整指令。从形式上看,以分号结尾的一条代码就是一条语句。
C语言中的语句可以分为以下五大类:
-
表达式语句:在表达式后面加上分号构成,主要用于执行表达式所代表的操作,可能会对变量的值产生修改。
-
复合语句(块语句):用花括号
{}
把一组语句括起来,通常用于将多个语句组合成一个逻辑单元。 -
控制语句:用于控制程序的执行流程,包括条件语句、循环语句和转向语句。
-
函数语句:用于调用函数并执行函数体。
-
空语句:仅由一个分号组成,不包含任何内容。
好啦,今天的内容就到这里啦。关注我,一起开启更多编程知识的学习之旅!