int main()
{
int *p,*q;
p=(int *)1000;
q=(int *)2000;
printf("%d:%d:%d",q,p,(q-p));
}
输出
2000:1000:250
1.我看不懂p=(int *)1000;
行,这是否意味着p指向1000地址位置?如果我这样做*p=22
,这个值是否存储在 1000 地址并覆盖现有值?如果它覆盖了这个值,如果另一个程序正在使用 1000 个地址空间怎么办?
- 怎么样
q-p=250
?
编辑: 我试过printf("%u:%u:%u",q,p,(q-p));
输出是一样的
int main()
{
int *p;
int i=5;
p=&i;
printf("%u:%d",p,i);
return 0;
}
输出
3214158860:5
- 这是否意味着编译器使用的地址是整数?普通整数和地址整数之间没有区别吗?