源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++中一维数组与指针的关系详细总结

  • 时间:2020-06-13 04:31 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++中一维数组与指针的关系详细总结
[b]对于数组int a[10]; [/b]a表示数组的第一个元素的地址,即&a[0]; 如果使指针p,指向数组的首元素,可以进行操作: int * p=a; 或者 int *p=&a[0]; 那么p++,是指向数组中的先一个元素,即a[1]; 此时*p则是a[1]中所放的值。 此时,a[i]=p[i]=*(a+i)=*(p+i) [b]下面举一个例子; [/b]直接用a[i]来输出
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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; }
[b]用*(a+i)来输出 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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; }
[b]用*(p+i)来输出 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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; }
[b]关于*p++ [/b]由于++和*的优先级相同,结合方向是自右而左,因此它等价于*(p++)。作用是:先得到p指向的变量的值(即*p),然后再使指向p的值加1.
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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; }
[b]等价于 [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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; }
[b]*p++等价于*(p++);而*(++p)表示先使p+1,再取*p. [/b]
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; int main(){  int a[10]={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[2]到a[11]的值,其中a[11]并没有定义。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部