有关i地址&i的类型问题的疑惑
程序代码:
#include<stdio.h> int main() { int i; int a[4]; printf("%p\n",&i); printf("%p\n",(int)&i); printf("%p\n",a); printf("%p\n",(int)a); printf("%p\n",(&i-a)); printf("%p\n",((int)&i-(int)a)); return 0; }
这个程序在turbo c 2.0 运行是正常的,没有提醒和错误,但是两个printf打出来的结果是不同的。而在vc6.0中编译通不过,提示&i-a这个操作是不可以的,那么&i是一个地址,a也是一个地址,而(int)&a与&a打印出来的结果是一样的,而且看起来都是4位的整型,为什么turbo
c 中打印出来的差不一样,而vc6.0却编译根本通不过呢?