C语言基础测试题
1. 代码输出:
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) ? puts(">6") : puts("<=6");
}
结果输出: >6
解释:在计算过程中,会出现隐式类型转换, int 转换为 unsigned int , -20将被转化为一个很大的数字。因此a+b很大。
2. 关于指针与数组所占内存的问题:
int * p = NULL;
sizeof(p) 值为4