【发布时间】:2012-08-24 11:02:39
【问题描述】:
#include<stdio.h>
#define int int*
main(){
int *p,q;
p=(int *)5;
q=10;
printf("%d",q+p);
}
我的问题是,在p=(int *)5 和q=10 行中,它是如何在内部工作的,因为p 和q 都是指针类型,我们怎么可能将整数值分配给指针变量@ 987654326@?。还有一件事,这种类型的转换 p=(int*)5 在这里工作吗?
通过这个公式我们可以回答
新地址=旧地址+数字*指针指向的数据类型的大小
【问题讨论】:
-
#define int int*- 邪恶主谋:P -
是 p = (int) 5 还是 p = (int *) 5 ?
-
由于#define,这只是无意义的代码,在现实世界的应用程序中没有用处。无需详述它的作用。
-
@PetarMinchev 你知道“从不归咎于恶意......”这句话吗?
-
@cnicutar - 我还没听说过。不错,谢谢:)