想让函数改动外面的变量,怎么办
C 里唯一的办法是【0】。
通过指针改一个值
(本条路线统一用 gcc -std=c11 -O0 编译) #include <stdio.h> int main(void) { int v = 42; int *p = &v; *p = *
🔴 传值改不动,传地址改得动
(本条路线统一用 gcc -std=c11 -O0 编译)两个函数都想把外面的变量改成 99: #include <stdio.h> void try_set(int x) { /* 传值:改的是副本 *
让指针指向那个变量
(本条路线统一用 gcc -std=c11 -O0 编译)把 p 指向 v。
🔴 写一个真能换的 swap
(本条路线统一用 gcc -std=c11 -O0 编译)经典的交换函数。参数收的是地址,所以改得动外面。
⚠️ 数组传进函数之后,还能用下标吗
(本条路线统一用 gcc -std=c11 -O0 编译)函数收的是 const int *,但下标写法照样能用。把求和补上。
头文件里该放什么
一个 .h 文件里通常放的是【0】。
⚠️ include guard 防的是什么
头文件开头那三行 #ifndef / #define / #endif 防的是【0】。
尖括号和双引号差在哪
尖括号和双引号的区别是【0】。
🔴 include guard 生效之后
(本条路线统一用 gcc -std=c11 -O0 编译)同一段内容写了两遍,两遍都带同一个 guard: #include <stdio.h> #ifndef ONCE_H #define ONCE_H static int