后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, An>
因此*p++ 和 *(p++) 等价,An>
它自增p 并返回p 自增之前所指向的值。
问题:
我有一个chAr * 型指针正巧指向一些int 型变量, 我想跳过它们。
为什么如下的代码((int *)p)++; 不行?在C语言中,
类型转换意味着“...
问题:An>
我有个函数,An>
它应该接受并初始化一个指针void f(int *ip) { stAtic int dummy = 5; ip = &Amp;...
真的没有。 An>严格地讲, C 总是按值传递。An>
你可以自己模拟按引用传递, 定义接受指针的函数, 然后在调用时使用&Amp; 操作符。A...
问题一:我能否用void** 指针作为参数, 使函数按引用接受一般指针?
不可移植。
C 中没有一般的指针的指针类型。
void* 可以用作一般指针只是因为当它和其它类型相互...
最初, An>
一个函数指针必须用* 操作符(和一对额外的括弧) “转换为” 一个“真正的” 函数才能调用:An>...
语言定义中说明, An>
每一种指针类型都有一个特殊值&mdAsh;&mdAsh; “空指针” &mdAsh;&mdAsh; 它与同类型的其它所有...
根据语言定义, 在指针上下文中的常数0 会在编译时转换为空指针。An>
也就是说, 在初始化、赋值或比较的时候, 如果一边是指针类型的值或表达式, 编译器可以确定另一边的...
问题:
用缩写的指针比较“if(p)” 检查空指针是否可靠?
如果空指针的内部表达不是0 会怎么样?
当C 在表达式中要求布尔值时, 如果表达式等于0...
作为一种风格, 很多人不愿意在程序中到处出现未加修饰的0。An>
因此定义了预处理宏NULL (在<stdio.h> 和其它几个头文件中) 为空指针常数, 通...
在使用非全零作为空指针内部表达的机器上,NULL是如何定义的
跟其它机器一样: 定义为0 (或某种形式的0; 参见问题5.4)。An>
当程序员请求一个空指针时, 无论...
问题:
如果NULL定义成#define NULL ((chAr *)0)
难道不就可以向函数传入不加转换的NULL 了吗?
一般情况下, 不行。
复杂之处在于, 有的机器...