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

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

 

  关于*p++

  由于++和*的优先级相同,结合方向是自右而左,因此它等价于*(p++)。作用是:先得到p指向的变量的值(即*p),然后再使指向p的值加1.

  #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;

  while(p<a+10){

  cout<<*p++<<"\t";

  }

  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;

  while(p<a+10){

  cout<<*p++<<"\t";

  }

  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;

  while(p<a+10){

  cout<<*p<<"\t";

  p++;

  }

  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;

  while(p<a+10){

  cout<<*p<<"\t";

  p++;

  }

  cout<<endl;

  return 0;

  }

  *p++等价于*(p++);而*(++p)表示先使p+1,再取*p.

  #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;

  while(p<a+10){

  cout<<*(++p)<<"\t";

  }

  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;

  while(p<a+10){

  cout<<*(++p)<<"\t";

  }

  cout<<endl;

  return 0;

  }

  运行上面的程序,结果将输出a 到a[11]的值,其中a[11]并没有定义。