#include
int main() { int age = 25; float salary = 3000.5f; char grade = 'A'; printf("年龄:%d\n", age); printf("薪水:%.2f\n", salary); printf("成绩:%c\n", grade); return 0;
} #include
int main() { int a = 10, b = 5; printf("a + b = %d\n", a + b); printf("a - b = %d\n", a - b); printf("a * b = %d\n", a * b); printf("a / b = %d\n", a / b); printf("a % b = %d\n", a % b); return 0;
} #include
int main() { int num; printf("请输入一个数字:"); scanf("%d", &num); if (num > 0) { printf("这是一个正数。\n"); } else if (num < 0) { printf("这是一个负数。\n"); } else { printf("这是一个零。\n"); } return 0;
} #include
void sayHello() { printf("Hello, World!\n");
}
int main() { sayHello(); return 0;
} #include
void increment(int *num) { (*num)++;
}
int main() { int num = 10; printf("原始值:%d\n", num); increment(&num); printf("修改后的值:%d\n", num); return 0;
} #include
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;
} #include
int main() { int arr[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { printf("arr[%d][%d] = %d\n", i, j, arr[i][j]); } } return 0;
} #include
int main() { int num = 10; int *ptr = # printf("num的地址:%p\n", (void *)&num); printf("ptr指向的地址:%p\n", (void *)ptr); printf("ptr指向的值:%d\n", *ptr); return 0;
} #include
int main() { int *arr[3]; int a = 10, b = 20, c = 30; arr[0] = &a; arr[1] = &b; arr[2] = &c; printf("a的值:%d\n", *arr[0]); printf("b的值:%d\n", *arr[1]); printf("c的值:%d\n", *arr[2]); return 0;
} #include
typedef struct { int id; char name[50];
} Student;
int main() { Student stu1; stu1.id = 1; strcpy(stu1.name, "Alice"); printf("学生ID:%d\n", stu1.id); printf("学生姓名:%s\n", stu1.name); return 0;
} #include
#include
typedef struct { int id; char name[50];
} Student;
int main() { Student stu[3] = { {1, "Alice"}, {2, "Bob"}, {3, "Charlie"} }; for (int i = 0; i < 3; i++) { printf("学生ID:%d\n", stu[i].id); printf("学生姓名:%s\n", stu[i].name); } return 0;
} #include
#include
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 = (Node *)malloc(sizeof(Node)); head->next->next->data = 3; head->next->next->next = NULL; Node *current = head; while (current != NULL) { printf("链表数据:%d\n", current->data); current = current->next; } // 释放链表内存 free(head); free(head->next); free(head->next->next); return 0;
} #include
#include
typedef struct Node { int data; struct Node *prev; struct Node *next;
} Node;
int main() { Node *head = (Node *)malloc(sizeof(Node)); head->data = 1; head->prev = NULL; head->next = (Node *)malloc(sizeof(Node)); head->next->data = 2; head->next->prev = head; head->next->next = (Node *)malloc(sizeof(Node)); head->next->next->data = 3; head->next->next->prev = head->next; head->next->next->next = NULL; Node *current = head; while (current != NULL) { printf("链表数据:%d\n", current->data); current = current->next; } // 释放链表内存 free(head); free(head->next); free(head->next->next); return 0;
} #include
int main() { FILE *file = fopen("data.txt", "r"); if (file == NULL) { printf("打开文件失败\n"); return -1; } char buffer[100]; while (fgets(buffer, sizeof(buffer), file)) { printf("%s", buffer); } fclose(file); return 0;
} #include
int main() { FILE *file = fopen("data.txt", "w"); if (file == NULL) { printf("打开文件失败\n"); return -1; } fprintf(file, "Hello, World!\n"); fclose(file); return 0;
} #include
#include
int main() { int *arr = (int *)malloc(5 * sizeof(int)); if (arr == NULL) { printf("内存分配失败\n"); return -1; } for (int i = 0; i < 5; i++) { arr[i] = i; } for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } printf("\n"); free(arr); return 0;
} #include
#include
int main() { int *arr = (int *)malloc(5 * sizeof(int)); if (arr == NULL) { printf("内存分配失败\n"); return -1; } for (int i = 0; i < 5; i++) { arr[i] = i; } free(arr); return 0;
} #include
int main() { int a = 5; // 0101 int b = 3; // 0011 printf("a & b = %d\n", a & b); // 0001 return 0;
} #include
int main() { int a = 5; // 0101 int b = 3; // 0011 printf("a | b = %d\n", a | b); // 0111 return 0;
} #include
int main() { int a = 5; // 0101 printf("~a = %d\n", ~a); // 1110 return 0;
} #include
int main() { int a = 5; // 0101 printf("a << 1 = %d\n", a << 1); // 1010 return 0;
} #include
int main() { int a = 5; // 0101 printf("a >> 1 = %d\n", a >> 1); // 0010 return 0;
} #include
int main() { FILE *file = fopen("data.txt", "r"); if (file == NULL) { perror("打开文件失败"); return -1; } fclose(file); return 0;
} #include
#include
#include
int main() { errno = 0; int result = open("data.txt", O_RDONLY); if (result == -1) { if (errno == ENOENT) { printf("文件不存在\n"); } else { perror("打开文件失败"); } } return 0;
} gcc -o program program.cgdb program#include
#include
#include
int main() { char *str = strdup("Hello, World!"); printf("%s\n", str); free(str); return 0;
} #include
#define MAX_SIZE 10
int main() { int arr[MAX_SIZE]; printf("数组大小:%d\n", MAX_SIZE); return 0;
} #include
#include
void *printHello(void *arg) { printf("Hello, World!\n"); return NULL;
}
int main() { pthread_t thread; if (pthread_create(&thread, NULL, printHello, NULL) != 0) { perror("创建线程失败"); return -1; } pthread_join(thread, NULL); return 0;
} #include
#include
#include
#include
#include
#include
int main() { int server_fd, new_socket; struct sockaddr_in address; int opt = 1; int addrlen = sizeof(address); // 创建socket文件描述符 if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) { perror("socket failed"); exit(EXIT_FAILURE); } // 强制绑定socket到指定地址和端口 if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) { perror("setsockopt"); exit(EXIT_FAILURE); } address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(8080); // 绑定socket到指定地址和端口 if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) { perror("bind failed"); exit(EXIT_FAILURE); } // 监听socket if (listen(server_fd, 3) < 0) { perror("listen"); exit(EXIT_FAILURE); } // 接受连接 if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) { perror("accept"); exit(EXIT_FAILURE); } // 读取客户端数据 char buffer[1024] = {0}; read(new_socket, buffer, 1024); printf("Client message: %s\n", buffer); // 关闭连接 close(new_socket); close(server_fd); return 0;
} 本文通过50个典型代码实例解析和实战技巧,帮助读者深入了解C语言编程。这些实例涵盖了C语言基础语法、函数、数组、指针、结构体、链表、文件操作、动态内存分配、位操作、错误处理、编译和调试、标准库函数、预处理器、多线程和网络编程等多个方面。通过学习和实践这些实例,读者可以快速提高C语言编程能力。