C 语言中的陷阱
函数中的内部变量会被回收
void foo(char *p) {
p = "Hello, World!";
// 错误,函数中的内部变量会在函数执行完成(调用出栈)之后被回收
}? : 运算符优先级比 + - * / % 低
? : 运算符优先级比 + - * / % 低int i = 10 + ok ? 1 : -1;
// 该表达式的实际运算优先级是
// int i = (10 + ok) ? 1 : -1;数组变量被当作指针处理
void foo(int *nums) {
int len = sizeof nums / sizeof nums[0];
// 错误,nums 只是一个指针变量
}结构体之间的类型转换
最后更新于