#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++)”这个句子?
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类型大小),实现数组遍历。