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];
}
相关推荐
拓恒技术7 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
晨曦中的暮雨8 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
怕浪猫8 小时前
Claude Code vs Codex:Computer Use 实现原理深度拆解
算法·面试·github
罗西的思考9 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
淡海水10 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
下一站春风里11 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
DRobot12 小时前
【机械制图与CAD实战(二十五)】螺纹的表示方法
算法·机械制图
用户老李12 小时前
卡尔曼滤波自学教程 10:无迹卡尔曼滤波(UKF)
算法
深圳市益普科技有限公司13 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
程序员清风14 小时前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin