C 程序员传统上喜欢知道很多(可能比他们需要知道的还要多) 关于机器实现的细节。
空指针在源码和大多数机器实现中都用零来表示的事实导致了很多无根据的猜测。
有两条简单规则你必须遵循:
1、当你在源码中需要空指针常数时, 用“0” 或“NULL”。
2、如果在函数调用中“0...
问题:
考虑到有关空指针的所有这些困惑,
难道把要求它们内部表达都必须为0 不是更简单吗?如果没有其它的原因, 这样做会是没脑筋的。
因为它会不必要地限制某些实现, 阻止它们...
真有机器用非零空指针?或者不同类型用不同的表达?
至少PL/I, Prime 50 系列用段07777, 偏移0 作为空指针。
后来的型号使用段0, 偏移0 作为C 的空指针,...
问题:为什么这段代码不行?
char *answer;
printf("Type something:\n");
gets(answer);
printf("You typ...
问题:
因为在C 语言中所有的非零值都被看作“真”, 是不是把TRUE 定义为1 很危险?
如果某个内置的函数或关系操作符“返回&rdquo...
一种流行的技巧是用一个单独的用括弧括起来的的“参数” 定义和调用宏,
参数在宏扩展的时候成为类似printf() 那样的函数的...
问题:我想用strcmp() 作为比较函数, 调用qsort() 对一个字符串数组排序, 但是不行。你说的“字符串数组” 实际上是“字符指针数组...