C语言实战

以下是C语言实战中常见的应用场景和解决方案,涵盖基础到进阶内容:

变量与数据类型

整型、浮点型、字符型变量的声明与初始化:

复制代码
int count = 10;
float price = 9.99f;
char grade = 'A';

结构体和联合体的使用:

复制代码
struct Point {
    int x;
    int y;
};
union Data {
    int i;
    float f;
};

内存管理

动态内存分配与释放:

复制代码
int *arr = (int*)malloc(10 * sizeof(int));
free(arr);

内存操作函数示例:

复制代码
char src[50] = "Hello";
char dest[50];
memcpy(dest, src, strlen(src)+1);

文件操作

文本文件读写:

复制代码
FILE *f = fopen("data.txt", "w");
fprintf(f, "%d %f", 100, 3.14);
fclose(f);

二进制文件处理:

复制代码
struct Record r;
FILE *bin = fopen("data.bin", "rb");
fread(&r, sizeof(struct Record), 1, bin);

数据结构实现

链表节点定义:

复制代码
typedef struct Node {
    int data;
    struct Node* next;
} Node;

栈的基本操作:

复制代码
#define MAX 100
int stack[MAX];
int top = -1;

void push(int item) {
    if(top >= MAX-1) return;
    stack[++top] = item;
}

算法实现

快速排序示例:

复制代码
void quickSort(int arr[], int left, int right) {
    if(left >= right) return;
    int i = left, j = right;
    int pivot = arr[(left+right)/2];
    while(i <= j) {
        while(arr[i] < pivot) i++;
        while(arr[j] > pivot) j--;
        if(i <= j) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++; j--;
        }
    }
    quickSort(arr, left, j);
    quickSort(arr, i, right);
}

多线程编程

POSIX线程创建:

复制代码
#include <pthread.h>
void* thread_func(void* arg) {
    printf("Thread running\n");
    return NULL;
}

pthread_t tid;
pthread_create(&tid, NULL, thread_func, NULL);
pthread_join(tid, NULL);

网络编程

TCP客户端示例:

复制代码
#include <sys/socket.h>
#include <netinet/in.h>

int sock = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in addr = {
    .sin_family = AF_INET,
    .sin_port = htons(8080),
    .sin_addr.s_addr = inet_addr("127.0.0.1")
};
connect(sock, (struct sockaddr*)&addr, sizeof(addr));

调试技巧

使用gdb基本命令:

复制代码
gcc -g program.c -o program
gdb ./program
break main
run
print variable

性能优化

循环展开示例:

复制代码
// 原始循环
for(int i=0; i<100; i++) { sum += arr[i]; }

// 展开4次
for(int i=0; i<100; i+=4) {
    sum += arr[i];
    sum += arr[i+1];
    sum += arr[i+2];
    sum += arr[i+3];
}
相关推荐
小O的算法实验室21 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
郭涤生1 天前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿1 天前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz1 天前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能1 天前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****1 天前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能1 天前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能1 天前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数
CoderCodingNo1 天前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法
Proxy_ZZ01 天前
从零实现LDPC比特翻转译码器:C语言实战与底层逻辑解析
c语言·算法