地址还是元素10。18
main(){int a[3][3],*p,i;
p=&a[0][0];
for(i=p;i<9;i++) p[i]=i+1;
printf("%d\n",a[1][2]);
}
这道题中i=p;i<9,这i是地址,为什么能和整型的9比大小???
错误啊!!楼主要相信自己阿!!记得实践是出真知的!!当然这个程序中i可以和整数比较的,因为地址可以进行+、-,比较运算但不能乘除!!但是程序中逻辑有问题阿!!
晕死,我的意思是地址可以进行比较运算,当然可以与9进行比较了,比如说你使用c来硬件编成的时候与某一个地址进行比较不是很正常的吗!!我强调的是可以进行比较运算,但是楼主的程序错了。
为什么能和整型的9比大小???——可以比较,但是对于这个程序没有任何的意义!!
这个程序从语法上来说没有什么错误(我运行过,没错!)
另外,在C中,地址变量和一般变量几乎没有什么区别,你可以对它进行各种运算。(我们甚至可以给它直接赋值)不过一般我们不这样做,因为它里面是一个地址的数值,如果乱改可能会让计算机找不到数据,或者访问它不能访问的地址, 这们会造成系统的不稳定。
比如我们可以这样
int *p;
p=0x452163