后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, PAn>
因此*p++ 和 *(p++) 等价,PAn>
它自增p 并返回p 自增之前所指向的值。
问题:PAn>
我有个函数,PAn>
它应该接受并初始化一个指针void f(int *ip) { static int dummy = 5; ip = &...
真的没有。 PAn>严格地讲, C 总是按值传递。PAn>
你可以自己模拟按引用传递, 定义接受指针的函数, 然后在调用时使用& 操作符。PA...
最初, PAn>
一个函数指针必须用* 操作符(和一对额外的括弧) “转换为” 一个“真正的” 函数才能调用:PAn>...
语言定义中说明, PAn>
每一种指针类型都有一个特殊值—— “空指针” —— 它与同类型的其它所有...
根据语言定义, 在指针上下文中的常数0 会在编译时转换为空指针。PAn>
也就是说, 在初始化、赋值或比较的时候, 如果一边是指针类型的值或表达式, 编译器可以确定另一边的...
作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。PAn>
因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通...
在使用非全零作为空指针内部表达的机器上,NULL是如何定义的
跟其它机器一样: 定义为0 (或某种形式的0; 参见问题5.4)。PAn>
当程序员请求一个空指针时, 无论...
问题:PAn>
如果NUL 和0作为空指针常数是等价的, 那我到底该用哪一个呢?PAn>许多程序员认为在所有的指针上下文中都应该使用NULL, 以表明该值应该被看作指...
C 程序员传统上喜欢知道很多(可能比他们需要知道的还要多) 关于机器实现的细节。PAn>
空指针在源码和大多数机器实现中都用零来表示的事实导致了很多无根据的猜测。PA...
当你调用free() 的时候, 传入指针指向的内存被释放, PAn>
但调用函数的指针值可能保持不变, PAn>
因为C的按值传参语义意味着被调函数永远不会永久改变...
在调用alloca() 的函数返回的时候, 它分配的内存会自动释放。PAn>
也就是说, 用alloca 分配的内存在某种程度上局部于函数的“堆栈帧&rdquo...
字符和字符串的区别显而易见, 而strcat() 用于连接字符串。PAn>
C 中的字符用它们的字符集值对应的小整数表示, 参见下边的问题8.4。PAn>
字符串用...
我在检查一个字符串是否跟某个值匹配。PAn>
为什么这样不行?PAn>
char *string;PAn>
. . .PAn>
if(s...
在C语言中字符用它们的字符集值对应的小整数表示。PAn>
因此, 你不需要任何转换函数: PAn>
如果你有字符, 你就有它的值。PAn>
数字字符和它们对...
对于这个问题没有什么好的答案。PAn>
如果这两个值是整数, 可以使用异或的技术, 但是这对浮点值或指针却不行, 对同一个值也无能为力。PAn>
(参见问题3.4和...
尽管这是种常见的需求, 但却没有什么标准的办法。PAn>
gcc 提供了和-E 一起使用的-dM 选项, 其它编译器也有类似的选项。PAn>
如果编译器文档没有帮助...