一文彻底搞定C语言的表达式和语句

简介: 本文介绍了C语言中的表达式和语句,涵盖算术、关系等表达式及各类语句的用法,帮助初学者理解核心概念。本文介绍C语言表达式(算术、关系等)和语句(表达式、复合、控制、函数、空语句),助你掌握核心概念。

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!


1 表达式

表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。

说白了,在 C 语言中,表达式是由操作数(如变量、常量)和运算符组成的式子,它会产生一个值

表达式分为:

  1. 算术表达式
  2. 赋值表达式
  3. 关系表达式
  4. 逻辑表达式
  5. 位运算表达式
  6. 条件表达式
  7. 逗号表达式

等等

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--);

}
AI 代码解读

给大家预留一个试题,可以试着去分析一下:

//算术表达式 常见的试题分析
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);

}
AI 代码解读

1.2 关系表达式

关系表达式是由数值和关系操作符连接起来的表达式。很重要的表达式,因为我们接下来就会经常使用哈

每个关系表达式都有一个结果,即为真或者为假。在 C 语言中,我们用0 来表示假,非零来表示真。

比如,我有 int x = 16; 那么请问:10< x < 30 这样一个表达式,它的结果是真还是假?

答:永远是真。

不管你的 x 是不是 16。它哪怕是 50,该表达式的结果仍然为真。

为什么:

在编译器看来,它始终都是从左往右来去执行的。它首先回去执行 10 < x,它如果为真,就返回 1,接下来就是判断 1 < 30,结果还是真;而如果 10 < x 为假,那么就返回 0,接下来就是判断 0 < 20,它结果还是真。

就是说,你不管 x 是多少,不管 10 < x 是真还是假,最后得到的结果都是真。

所以,要是写判断一个数在 10-30 之间,就千万不可以这样去写。

要写成 x > 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");
}
AI 代码解读

来,搞到题试试:

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 中的语句可以分为以下五大类:
表达式语句;复合语句;控制语句;函数语句;空语句。

  1. 表达式语句
    表达式语句是在表达式后面加上分号;构成的语句。它的主要目的是执行表达式所代表的操作,并可能产生副作用(如修改变量的值)。

  2. 复合语句(也叫块语句)
    复合语句是用花括号 {} 括起来的一组语句,通常用于将多个语句组合在一起,形成一个逻辑单元。

  3. 控制语句
    控制语句用于控制程序的执行流程,包括条件语句和循环语句和转向语句。

  4. 函数语句
    函数调用语句用于调用函数并执行函数体。

  5. 空语句
    没有内容,只有个;的语句

好啦,本篇就到这里啦,关注我,跟我学起来!

相关文章
|
11月前
|
C语言的整式表达式
C语言的整式表达式
65 1
|
11月前
|
C语言的条件表达式
C语言的条件表达式
178 1
|
3月前
|
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
137 1
c语言表达式求值--整型提升
c语言表达式求值--整型提升
|
11月前
|
C语言中的关系运算符和关系表达式
C语言中的关系运算符和关系表达式
147 0
|
11月前
|
C语言中的条件运算符和条件表达式详解
C语言中的条件运算符和条件表达式详解
974 0
【C语言基础考研向】06运算符与表达式
本文介绍了C语言中的运算符分类、算术运算符及表达式、关系运算符与表达式以及运算符优先级等内容。首先概述了13种运算符类型,接着详细说明了算术运算符的优先级与使用规则,以及关系运算符和表达式的真假值表示,并给出了C语言运算符优先级表。最后附有课后习题帮助巩固理解。
194 10
C语言------运算符与表达式
这篇文章是C语言运算符与表达式的实训教程,通过多个示例程序展示了如何使用算术运算符、关系运算符、逻辑运算符以及条件语句来解决实际问题,并介绍了如何通过函数库简化复杂数学运算。
C语言------运算符与表达式
|
7月前
|
C语言程序设计核心详解 第二章:数据与数据类型 4种常量详解 常见表达式详解
本文详细介绍了C语言中的数据与数据类型,包括常量、变量、表达式和函数等内容。常量分为整型、实型、字符型和字符串常量,其中整型常量有十进制、八进制和十六进制三种形式;实型常量包括小数和指数形式;字符型常量涵盖常规字符、转义字符及八进制、十六进制形式;字符串常量由双引号括起。变量遵循先定义后使用的规则,并需遵守命名规范。函数分为标准函数和自定义函数,如`sqrt()`和`abs()`。表达式涉及算术、赋值、自增自减和逗号运算符等,需注意运算符的优先级和结合性。文章还介绍了强制类型转换及隐式转换的概念。
135 2