C++一维数组和指针的关系总结(一)

2013-09-26 20:01:41 · 作者: · 浏览: 425

  对于数组int a ;

  a表示数组的第一个元素的地址,即&a[0];

  如果使指针p,指向数组的首元素,可以进行操作:

  int * p=a;

  或者

  int *p=&a[0];

  那么p++,是指向数组中的先一个元素,即a ;

  此时*p则是a 中所放的值。

  此时,a[i]=p[i]=*(a+i)=*(p+i)

  下面举一个例子;

  直接用a[i]来输出

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  for(i=0;i<10;i++)

  cout<<a[i]<<" ";

  cout<<endl;

  return 0;

  }

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  for(i=0;i<10;i++)

  cout<<a[i]<<" ";

  cout<<endl;

  return 0;

  }

  用*(a+i)来输出

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  for(i=0;i<10;i++)

  cout<<*(a+i)<<" ";

  cout<<endl;

  return 0;

  }

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  for(i=0;i<10;i++)

  cout<<*(a+i)<<" ";

  cout<<endl;

  return 0;

  }

  用*(p+i)来输出

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  int * p=a;

  for(i=0;i<10;i++)

  cout<<*(p+i)<<" ";

  cout<<endl;

  return 0;

  }

  #include<iostream>

  using namespace std;

  int main(){

  int a ={1,2,3,4,5,6,7,8,9,10};

  cout<<"Please input 10 intergers: "<<endl;

  int i=0;

  int * p=a;

  for(i=0;i<10;i++)

  cout<<*(p+i)<<" ";

  cout<<endl;

  return 0;

  }