引言

C语言作为一种历史悠久且广泛使用的编程语言,以其简洁、高效和可移植性而著称。无论是操作系统开发、嵌入式系统,还是现代应用程序,C语言都扮演着重要角色。本篇笔记将解析C语言的核心技术,帮助读者快速掌握这一编程语言。

1. C语言基础

1.1 数据类型

C语言提供了丰富的数据类型,包括基本数据类型(int、float、double、char等)和构造数据类型(数组、指针、结构体、联合体等)。

#include <stdio.h>

int main() {
    int num = 10;
    float fnum = 3.14f;
    char ch = 'A';
    return 0;
}

1.2 变量和常量

变量是存储数据的容器,而常量则是其值在程序运行过程中不能改变的量。

#include <stdio.h>

int main() {
    int num = 10; // 变量
    const float PI = 3.14f; // 常量
    return 0;
}

1.3 运算符

C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等。

#include <stdio.h>

int main() {
    int a = 5, b = 3;
    printf("a + b = %d\n", a + b); // 算术运算
    printf("a > b = %d\n", a > b); // 关系运算
    printf("!(a > b) = %d\n", !(a > b)); // 逻辑运算
    return 0;
}

2. 控制结构

2.1 顺序结构

顺序结构是程序中最基本的执行流程,按照代码书写的顺序依次执行。

2.2 选择结构

选择结构根据条件判断执行不同的代码块。

#include <stdio.h>

int main() {
    int a = 5;
    if (a > 0) {
        printf("a is positive\n");
    } else {
        printf("a is not positive\n");
    }
    return 0;
}

2.3 循环结构

循环结构用于重复执行某段代码。

#include <stdio.h>

int main() {
    int i;
    for (i = 0; i < 5; i++) {
        printf("i = %d\n", i);
    }
    return 0;
}

3. 函数

函数是C语言的基本模块,用于封装代码块,提高代码的可重用性。

#include <stdio.h>

void printMessage() {
    printf("Hello, World!\n");
}

int main() {
    printMessage();
    return 0;
}

4. 数组

数组是存储相同数据类型元素的集合。

#include <stdio.h>

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }
    return 0;
}

5. 指针

指针是存储变量地址的变量。

#include <stdio.h>

int main() {
    int a = 10;
    int *ptr = &a; // ptr指向变量a的地址
    printf("a = %d, *ptr = %d\n", a, *ptr);
    return 0;
}

6. 结构体

结构体用于将不同类型的数据组合成一个单一的实体。

#include <stdio.h>

typedef struct {
    int id;
    char name[50];
    float score;
} Student;

int main() {
    Student stu = {1, "Alice", 90.5f};
    printf("Student ID: %d, Name: %s, Score: %.1f\n", stu.id, stu.name, stu.score);
    return 0;
}

7. 链表

链表是一种常见的数据结构,用于存储一系列元素。

#include <stdio.h>
#include <stdlib.h>

typedef struct Node {
    int data;
    struct Node *next;
} Node;

int main() {
    Node *head = (Node *)malloc(sizeof(Node));
    head->data = 1;
    head->next = (Node *)malloc(sizeof(Node));
    head->next->data = 2;
    head->next->next = NULL;

    Node *current = head;
    while (current != NULL) {
        printf("Node Data: %d\n", current->data);
        current = current->next;
    }

    return 0;
}

总结

通过以上解析,相信读者已经对C语言的核心技术有了初步的了解。在学习和实践过程中,不断积累经验,才能更好地掌握C语言。