C语言运算符

运算符详解

C语言提供了丰富的运算符,用于执行各种操作。

主要运算符类型:

  • 算术运算符 (+, -, *, /, %)
  • 关系运算符 (>, <, >=, <=, ==, !=)
  • 逻辑运算符 (&&, ||, !)
  • 位运算符 (&, |, ^, ~, <<, >>)
  • 赋值运算符 (=, +=, -=, *=, /=, %=)
  • 其他运算符 (sizeof, ?:, ., ->)
#include <stdio.h>

int main() {
    // 算术运算符示例
    printf("算术运算符示例:\n");
    int a = 10, b = 3;
    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b);
    printf("a %% b = %d\n", a % b);
    
    // 关系运算符示例
    printf("\n关系运算符示例:\n");
    printf("a > b: %d\n", a > b);
    printf("a < b: %d\n", a < b);
    printf("a >= b: %d\n", a >= b);
    printf("a <= b: %d\n", a <= b);
    printf("a == b: %d\n", a == b);
    printf("a != b: %d\n", a != b);
    
    // 逻辑运算符示例
    printf("\n逻辑运算符示例:\n");
    int x = 1, y = 0;
    printf("x && y: %d\n", x && y);
    printf("x || y: %d\n", x || y);
    printf("!x: %d\n", !x);
    printf("!y: %d\n", !y);
    
    // 位运算符示例
    printf("\n位运算符示例:\n");
    unsigned int num1 = 60;  // 0011 1100
    unsigned int num2 = 13;  // 0000 1101
    printf("num1 & num2 = %d\n", num1 & num2);  // 0000 1100 = 12
    printf("num1 | num2 = %d\n", num1 | num2);  // 0011 1101 = 61
    printf("num1 ^ num2 = %d\n", num1 ^ num2);  // 0011 0001 = 49
    printf("~num1 = %d\n", ~num1);             // 1100 0011 = -61
    printf("num1 << 2 = %d\n", num1 << 2);     // 1111 0000 = 240
    printf("num1 >> 2 = %d\n", num1 >> 2);     // 0000 1111 = 15
    
    // 赋值运算符示例
    printf("\n赋值运算符示例:\n");
    int c = 5;
    printf("初始值 c = %d\n", c);
    c += 3;
    printf("c += 3: %d\n", c);
    c -= 2;
    printf("c -= 2: %d\n", c);
    c *= 4;
    printf("c *= 4: %d\n", c);
    c /= 2;
    printf("c /= 2: %d\n", c);
    c %= 3;
    printf("c %%= 3: %d\n", c);
    
    // 条件运算符示例
    printf("\n条件运算符示例:\n");
    int max = (a > b) ? a : b;
    printf("a和b中的较大值: %d\n", max);
    
    // sizeof运算符示例
    printf("\nsizeof运算符示例:\n");
    printf("sizeof(int): %d\n", sizeof(int));
    printf("sizeof(char): %d\n", sizeof(char));
    printf("sizeof(float): %d\n", sizeof(float));
    printf("sizeof(double): %d\n", sizeof(double));
    
    // 运算符优先级示例
    printf("\n运算符优先级示例:\n");
    int result = 2 + 3 * 4;
    printf("2 + 3 * 4 = %d\n", result);
    result = (2 + 3) * 4;
    printf("(2 + 3) * 4 = %d\n", result);
    
    // 自增自减运算符示例
    printf("\n自增自减运算符示例:\n");
    int d = 5;
    printf("d = %d\n", d);
    printf("d++ = %d\n", d++);
    printf("d = %d\n", d);
    printf("++d = %d\n", ++d);
    printf("d = %d\n", d);
    printf("d-- = %d\n", d--);
    printf("d = %d\n", d);
    printf("--d = %d\n", --d);
    printf("d = %d\n", d);
    
    return 0;
}