首页 新闻 会员 周边

C++指针问题求解

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-06 20:16

#include <iostream>
using namespace std;
int main()
{
 int a[10];
 int i,*p=a;
 for(i=0;i<10;i++)
  cin>>*(p+i);
 cout<<endl;
 for(p=a;p<(a+10);p++)
  cout<<*p<<" ";
 cout<<endl;
 return 0;
}

 

如何理解上面“for(p=a;p<(a+10);p++)”这个句子?

菜新手的主页 菜新手 | 初学一级 | 园豆:186
提问于:2012-04-06 13:59
< >
分享
最佳答案
1

a是数组首地址,p=a是将数组首地址赋给p,a+10是一个指针的加操作,如果a的地址是1000,那么a+10的结果就是1000+4*10=1040(指针指向的类型是int,占4个字节),p++是指针后移一个位置,由于指向的是int,也就是移动4字节。p首先指向1000(数组首地址),p<1040(数组尾元素地址),p后移4个字节(一个int类型大小),实现数组遍历。

收获园豆:10
zsounder | 老鸟四级 |园豆:2819 | 2012-04-06 14:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册