1. C 语言简介

  • 定义:C 语言是一种过程式编程语言,设计用于系统编程和应用程序开发。
  • 特点:高效、灵活、接近硬件,支持指针和内存操作。

1. 基本语法

  • 程序结构:

    • C 语言程序由函数组成,main 函数是程序的入口点。
    #include <stdio.h>
    
    int main() {
        printf("Hello, World!\n");
        return 0;
    }
    
    • #include <stdio.h> 是预处理指令,包含标准输入输出库。
    • int main() 是主函数,程序从这里开始执行。
    • printf 用于输出文本到终端。

2. 数据类型

  • 基本数据类型

    • int:整数类型,通常占用 4 字节。
    • float:单精度浮点数,通常占用 4 字节。
    • double:双精度浮点数,通常占用 8 字节。
    • char:字符类型,通常占用 1 字节。
    int a = 10;
    float b = 3.14;
    double c = 2.718281828;
    char d = 'A';
    
  • 修饰符

    • short、long、signed、unsigned 用于修饰基本数据类型的大小和符号。
    unsigned int x = 1000;
    long int y = 100000L;
    

3. 变量

  • 声明与初始化:

    • 变量必须在使用之前声明,并可以在声明时初始化。
    int a = 5;    // 声明并初始化变量 a
    int b;        // 声明变量 b
    b = 10;       // 初始化变量 b
    

4. 运算符

  • 算术运算符

    • +、-、*、/、%,用于基本的数学运算。
    int sum = a + b;
    int product = a * b;
    
  • 关系运算符

    • ==、!=、>、<、>=、<=,用于比较操作。
    if (a > b) {
        printf("a is greater than b\n");
    }
    
  • 逻辑运算符

    • &&(与)、||(或)、!(非),用于逻辑运算。
    if (a > 0 && b > 0) {
        printf("Both a and b are positive\n");
    }
    
  • 赋值运算符

    • =、+=、-=、*=、/=,用于赋值操作。
    a += 5; // a = a + 5
    

5. 控制结构

  • 条件语句

    • if、else if、else 用于条件判断。
    if (a > b) {
        printf("a is greater\n");
    } else if (a < b) {
        printf("a is smaller\n");
    } else {
        printf("a and b are equal\n");
    }
    
  • 循环语句

    • for 循环:

      for (int i = 0; i < 5; i++) {
          printf("%d\n", i);
      }
      
    • while 循环:

      int i = 0;
      while (i < 5) {
          printf("%d\n", i);
          i++;
      }
      
    • do-while 循环:

      int i = 0;
      do {
          printf("%d\n", i);
          i++;
      } while (i < 5);
      

6. 函数

  • 函数定义与调用

    • 函数用于组织代码,执行特定任务。
    int add(int x, int y) {
        return x + y;
    }
    
    int main() {
        int result = add(5, 3);
        printf("Result: %d\n", result);
        return 0;
    }
    
  • 函数原型

    • 在函数定义之前声明函数,以告知编译器函数的存在。
    int add(int, int);
    

7. 数组

  • 定义与初始化

    • 数组是相同数据类型元素的集合。
    int arr[5] = {1, 2, 3, 4, 5};
    
  • 访问元素

    • 使用索引访问数组元素,索引从 0 开始。
    int first = arr[0]; // 访问第一个元素
    

8. 字符串

  • 定义与操作

    • 字符串是以 null 结尾的字符数组。
    char str[] = "Hello";
    printf("%s\n", str);
    
  • 字符串函数

    • 使用 strlen、strcpy、strcat 和 strcmp 等库函数操作字符串。
    #include <string.h>
    char dest[50];
    strcpy(dest, "Hello");
    strcat(dest, " World");
    

9. 指针

  • 定义与使用

    • 指针存储变量的内存地址。
    int a = 10;
    int *p = &a; // p 指向变量 a 的地址
    
  • 解引用与指针运算

    • 使用 * 操作符访问指针指向的值。
    *p = 20; // 修改 a 的值为 20
    

10. 结构体

  • 定义与使用:

    • 结构体用于定义具有不同数据类型的集合。
    struct Person {
        char name[50];
        int age;
    };
    
    struct Person p1;
    strcpy(p1.name, "Alice");
    p1.age = 30;
    

11. 文件操作

  • 打开、读写和关闭文件:

    • 使用 fopen、fprintf、fscanf、fclose 操作文件。
    FILE *fp = fopen("file.txt", "w");
    fprintf(fp, "Hello, File!\n");
    fclose(fp);
    
    FILE *fp = fopen("file.txt", "r");
    char buffer[100];
    fgets(buffer, 100, fp);
    fclose(fp);
    

12. 动态内存管理

  • 分配和释放内存:

    • 使用 malloc、calloc、realloc 和 free 管理内存。
    int *arr = (int *)malloc(sizeof(int) * 10);
    // 使用 arr
    free(arr);
    

13. 预处理器指令

  • 宏定义

    • 用 #define 定义常量或宏。
    #define PI 3.14159
    
  • 条件编译

    • 使用 #ifdef、#ifndef、#endif 进行条件编译。
    #ifdef DEBUG
    printf("Debug mode\n");
    #endif
    

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部