帮我看下这个简单C程序。

[复制链接]
查看11 | 回复4 | 2010-5-11 10:49:27 | 显示全部楼层 |阅读模式
main()
{
int a[3][4]={1,3,5,7,9,11,12,15,17,19,21,23};
int *p;
for(p=a[0];pmain(){
int a[3][4]={1,3,5,7,9,11,12,15,17,19,21,23};
int *p;
for (p=a[0];p<a[0]+12;p++)//内存地址也是一个四个字节的整型常量
{
if ((p-a[0])%4==0)printf("\n");//对4求余只是为了换行
printf("%4d",*p);
}
getchar();}
回复

使用道具 举报

千问 | 2010-5-11 10:49:27 | 显示全部楼层
(p-a[0])这个p已经在for(p=a[0];p<a[0]+12;p++)中指向了数组中的值,如p=a[0];所以是可以%4的。
回复

使用道具 举报

千问 | 2010-5-11 10:49:27 | 显示全部楼层
p-a[0] 是 0 untill 11You can output the (p-a[0]) to see the value.
回复

使用道具 举报

千问 | 2010-5-11 10:49:27 | 显示全部楼层
地址也是有顺序的地址也是数字表示的,只不过是看用什么进制表示
回复

使用道具 举报

千问 | 2010-5-11 10:49:27 | 显示全部楼层
是地址的差,两个很大的数的差就不大了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行