Skip to content

基础运算

在C语言中,运算符(Operator)可以让你对数据进行各种操作。这一章我们会学习4类最常用的运算。

赋值运算(Assignment)

💡 概念说明

赋值就是把一个值存储到变量里,使用 = 符号。

📝 代码示例

c
#include <stdio.h>

int main() {
    // 赋值操作
    int age = 25;           // 把25存储到age变量
    int score = age;        // 把age的值复制给score
    age = 30;               // 重新赋值,age现在是30
    
    printf("age = %d\n", age);       // 输出: age = 30
    printf("score = %d\n", score);   // 输出: score = 25
    
    return 0;
}

运行结果:

age = 30
score = 25

提示

赋值是从右往左的:age = 30 表示把30存入age,而不是age等于30。

数学运算(Arithmetic)

💡 概念说明

5种基本数学运算:

  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • % 求余(Modulo)

📝 代码示例

c
#include <stdio.h>

int main() {
    // 数学运算
    int a = 10, b = 3;
    int sum = a + b;        // 加法: 13
    int diff = a - b;       // 减法: 7
    int prod = a * b;       // 乘法: 30
    int quot = a / b;       // 除法: 3 (整数除法)
    int rem = a % b;        // 求余: 1 (10除以3余1)
    
    printf("10 + 3 = %d\n", sum);
    printf("10 - 3 = %d\n", diff);
    printf("10 * 3 = %d\n", prod);
    printf("10 / 3 = %d\n", quot);
    printf("10 %% 3 = %d\n", rem);
    
    return 0;
}

运行结果:

10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3
10 % 3 = 1

注意

整数除法会丢弃小数部分,10 / 3 结果是3而不是3.333。

比较运算(Comparison)

💡 概念说明

比较两个值的大小关系,结果是真(1)或假(0):

  • == 相等
  • != 不相等
  • > 大于
  • < 小于
  • >= 大于等于
  • <= 小于等于

📝 代码示例

c
#include <stdio.h>

int main() {
    // 比较运算
    int x = 5, y = 8;
    int result1 = (x == y);    // 相等吗? 0(假)
    int result2 = (x != y);    // 不相等吗? 1(真)
    int result3 = (x > y);     // x大于y吗? 0(假)
    int result4 = (x < y);     // x小于y吗? 1(真)
    int result5 = (x >= 5);    // x大于等于5吗? 1(真)
    int result6 = (y <= 10);   // y小于等于10吗? 1(真)
    
    printf("5 == 8: %d\n", result1);
    printf("5 != 8: %d\n", result2);
    printf("5 > 8: %d\n", result3);
    printf("5 < 8: %d\n", result4);
    printf("5 >= 5: %d\n", result5);
    printf("8 <= 10: %d\n", result6);
    
    return 0;
}

运行结果:

5 == 8: 0
5 != 8: 1
5 > 8: 0
5 < 8: 1
5 >= 5: 1
8 <= 10: 1

警告

判断相等用 ==,不是 == 是赋值操作。

逻辑运算(Logical)

💡 概念说明

组合多个条件判断:

  • && 与(AND) - 两个都为真时结果才为真
  • || 或(OR) - 至少一个为真时结果就为真
  • ! 非(NOT) - 取反

📝 代码示例

c
#include <stdio.h>

int main() {
    // 逻辑运算
    int age = 20;
    int has_ticket = 1;     // 1表示有票
    int result1 = (age >= 18) && (has_ticket == 1);  // 与运算
    int result2 = (age < 18) || (has_ticket == 1);   // 或运算
    int result3 = !(age < 18);                        // 非运算
    
    printf("年龄>=18 且 有票: %d\n", result1);
    printf("年龄<18 或 有票: %d\n", result2);
    printf("不是 年龄<18: %d\n", result3);
    
    return 0;
}

运行结果:

年龄>=18 且 有票: 1
年龄<18 或 有票: 1
不是 年龄<18: 1

提示

&& 要求两边都为真,|| 只要一边为真就可以。

💪 练习题

练习1: 计算器

编写程序,输入两个数字,计算并输出它们的和、差、积、商。

点击查看答案
c
#include <stdio.h>

int main() {
    int num1 = 20, num2 = 4;
    
    printf("和: %d\n", num1 + num2);
    printf("差: %d\n", num1 - num2);
    printf("积: %d\n", num1 * num2);
    printf("商: %d\n", num1 / num2);
    
    return 0;
}

练习2: 判断成绩

编写程序,判断分数是否及格(>=60)且小于100。

点击查看答案
c
#include <stdio.h>

int main() {
    int score = 75;
    int pass = (score >= 60) && (score < 100);
    
    printf("成绩是否合格: %d\n", pass);
    
    return 0;
}

📌 小结

  • 赋值用 =,把右边的值存入左边的变量
  • 数学运算有 + - * / %,整数除法会丢弃小数
  • 比较运算返回1(真)或0(假),注意 == 不是 =
  • 逻辑运算 && 要求都为真,|| 只要一个为真