C语言知识要点

Tom
Tom
2024-09-09 / 0 评论 / 16 阅读 / 正在检测是否收录...
  1. C语言简介
    C语言是一种结构化的、过程化的编程语言,广泛用于系统软件开发,如操作系统、编译器等。其特点是简洁、高效,能直接操作硬件,是学习编程的基础语言之一。
  2. 基本语法
    程序结构:C语言程序由头文件、主函数main()和其他函数组成。
    注释://用于单行注释,/ ... /用于多行注释。
    标识符:变量、函数名、常量名的命名规则,必须以字母或下划线开头。

    #include <stdio.h>
    
    int main() {
     // 单行注释
     printf("Hello, World!\n");  // 输出Hello, World!
     return 0;
    }
  3. 数据类型
    基本数据类型:int(整数),float(浮点数),double(双精度浮点数),char(字符)。
    修饰符:signed、unsigned、short、long可修饰基本数据类型。
    枚举类型:定义一组命名常量,增加代码可读性。
#include <stdio.h>

    int main() 
    {
    int a = 10;                 // 整型
    float b = 5.5;              // 浮点型
    char c = 'A';               // 字符型
    enum Day {MON, TUE, WED};   // 枚举类型
    enum Day today = MON;

    printf("整数: %d, 浮点数: %.1f, 字符: %c, 枚举: %d\n", a, b, c, today);
    return 0;
    }
  1. 运算符与表达式
    算术运算符:+, -, *, /, %(取模)。
    关系运算符:==, !=, <, >, <=, >=。
    逻辑运算符:&&(与),||(或),!(非)。
    位运算符:&, |, ^, ~, <<, >>。
    赋值运算符:=, +=, -=, *=, /=, %= 等。
    自增自减运算符:++, --。
    #include <stdio.h>

    int main() 
    {
    int a = 10, b = 20;
    int sum = a + b;  // 算术运算
    int isEqual = (a == b);  // 关系运算

    printf("和: %d, 相等: %d\n", sum, isEqual);  // 输出和与相等结果
    return 0;
    }
    
  1. 控制结构
    条件语句:if, else, switch。
    循环语句:while, do...while, for。
    跳转语句:break, continue, goto。

    #include <stdio.h>
    
    int main() {
     int num = 5;
    
     // if 语句
     if (num > 0) {
         printf("正数\n");
     } else {
         printf("非正数\n");
     }
    
     // for 循环
     for (int i = 0; i < 5; i++) {
         printf("计数: %d\n", i);
     }
    
     // switch 语句
     switch (num) {
         case 1:
             printf("数字是 1\n");
             break;
         case 5:
             printf("数字是 5\n");
             break;
         default:
             printf("其他数字\n");
     }
    
     return 0;
    }
  2. 数组
    数组是相同数据类型元素的集合,可以是单维、二维或多维数组。

    #include <stdio.h>
    
    int main() {
     int numbers[5] = {1, 2, 3, 4, 5};  // 定义一维数组
     int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};  // 定义二维数组
    
     printf("一维数组的第一个元素: %d\n", numbers[0]);
     printf("二维数组的元素: %d\n", matrix[1][2]);  // 输出 6
     return 0;
    }
  3. 字符串
    C语言没有专门的字符串类型,字符串本质上是字符数组,以\0(空字符)结尾。

    #include <stdio.h>
    
    int main() {
     char str[] = "Hello";
     printf("字符串: %s\n", str);
     return 0;
    }
  4. 函数
    定义和调用:函数用于将代码模块化,避免重复代码,提高可维护性。
    参数传递:C语言支持按值传递和按地址传递。

    #include <stdio.h>
    
    // 函数定义
    int add(int x, int y) {
     return x + y;
    }
    
    int main() {
     int result = add(10, 20);  // 函数调用
     printf("函数结果: %d\n", result);
     return 0;
    }
  5. 指针
    定义:指针是存储变量地址的变量。
    指针与数组:指针可以操作数组,甚至可以作为函数参数来传递数组。
    空指针与悬空指针:必须正确初始化指针,避免野指针和悬空指针。

    #include <stdio.h>
    
    int main() {
     int a = 10;
     int *p = &a;  // 定义指针并指向变量 a 的地址
    
     printf("变量的值: %d, 指针指向的值: %d\n", a, *p);
     return 0;
    }
  6. 结构体
    定义结构体:结构体是将不同类型数据组合在一起的用户自定义数据类型。
    结构体数组:结构体也可以形成数组,用于存储多个类似结构的数据。

    #include <stdio.h>
    
    // 定义结构体
    struct Student {
     char name[20];
     int age;
     float score;
    };
    
    int main() {
     struct Student student1 = {"张三", 18, 89.5};  // 初始化结构体
     printf("学生姓名: %s, 年龄: %d, 分数: %.2f\n", student1.name, student1.age, student1.score);
     return 0;
    }
    
  7. 文件操作
    文件指针:FILE *用于文件操作。
    基本操作:fopen, fclose, fread, fwrite, fprintf, fscanf等函数。

    #include <stdio.h>
    
    int main() {
     FILE *fp = fopen("example.txt", "w");  // 打开文件进行写操作
     if (fp != NULL) {
         fprintf(fp, "Hello, file!");  // 写入文件
         fclose(fp);  // 关闭文件
         printf("文件操作成功\n");
     } else {
         printf("文件打开失败\n");
     }
     return 0;
    }
    
1

评论 (0)

取消