- 论坛徽章:
- 0
|
本帖最后由 slackware12 于 2010-06-19 14:40 编辑
请各位大虾帮帮忙, 解本人一个惑吧. 头要爆了.
- int main(void)
- {
- int num = 10;
- void *p = #
- *p = 39; // 此处表达式是不合法的, 但是为什么呢?
- *p + 3; // 此处代码的也是不合法的, 和上面的问题应该是一样的性质, 但是到底是为什么?
- // 标准C 有没有规定, 不能对void *型的指针进行间接访问(即进行'*'操作符) ??
- return 0;
- }
- int main(void)
- {
- int *space =(int *) 10;
- void **pp = (void **)&space;
- *pp = (void *)349; // 为什么此处表达式是通过编译的? pp 是一个void *指针,
- // 其指向一个目标空间(此目标空间存储void *型值, 姑且把void *当成 A类型)的地址,
- //但是损失了目标空间的地址类型(A *), 那么p 在不知道(A *)的情况下, 怎么能确定目标空间的大小?
- return 0;
- }
复制代码 |
|