真的没有。 AN>严格地讲, C 总是按值传递。AN>
你可以自己模拟按引用传递, 定义接受指针的函数, 然后在调用时使用& 操作符。
最初, AN>
一个函数指针必须用* 操作符(和一对额外的括弧) “转换为” 一个“真正的” 函数才能调用:AN>...
语言定义中说明, AN>
每一种指针类型都有一个特殊值—— “空指针” —— 它与同类型的其它所有...
根据语言定义, 在指针上下文中的常数0 会在编译时转换为空指针。AN>
也就是说, 在初始化、赋值或比较的时候, 如果一边是指针类型的值或表达式, 编译器可以确定另一边的...
作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。AN>
因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通...
在使用非全零作为空指针内部表达的机器上,NULL是如何定义的
跟其它机器一样: 定义为0 (或某种形式的0; 参见问题5.4)。AN>
当程序员请求一个空指针时, 无论...
问题:
如果NULL定义成#define NULL ((char *)0)
难道不就可以向函数传入不加转换的NULL 了吗?
一般情况下, 不行。
复杂之处在于, 有的机器...
问题:AN>
如果NUL 和0作为空指针常数是等价的, 那我到底该用哪一个呢?AN>许多程序员认为在所有的指针上下文中都应该使用NULL, 以表明该值应该被看作指...
C 程序员传统上喜欢知道很多(可能比他们需要知道的还要多) 关于机器实现的细节。AN>
空指针在源码和大多数机器实现中都用零来表示的事实导致了很多无根据的猜测。
这并非易事。
一种办法是传入指向[0][0] 成员的的指针和两个维数, 然后“手 工” 模拟数组下标。
void f2(int *aryp, int n...
问题:为什么这段代码不行?
char *ANswer;
printf("Type something:\n");
gets(ANswer);
printf("You typ...
一般地说, 使用指针的时候, 你必须总是考虑内存分配, 除非明确知道编译器替你做了此事。
如果一个库函数的文档没有明确提到内存分配, 那么通常需要调用者来考虑。Unix 型的手册...
问题:
为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。在ANSI/ISO 标准C 引入void * 一般指针类型之前,
这种类型转换通常用于在不兼容指针类型...