青少年编程知识记录 codecoming

指针(二):指针与数组

1.指针与数组的关系

    指向数组的指针变量称为数组指针变量。“数组是内存上一块连续的空间”。数组名就是这块连续空间的首地址。



2.指针指向数组



    一开始的数组定义与输出:

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

指针操作也可以输入数据:

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10];  	for(int i=0;i<5;i++){  		scanf("%d",a+i); //本来写成scanf("%d",&a[i]);   	}  	for(int i=0;i<5;i++){  		printf("%d ", *(a+i));  //  	}  	return 0;  }

上面这个操作,本来scanf("%d",&a)写法,其中&是取地址符,a是数组名,本来就表示数组空间的首地址,所以可以直接用。注意,这个地方不能用cin。

数组指向指针操作:

我们可以定义指针变量,让它来指向数组名。

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10];  	int *p=a;    	for(int i=0;i<5;i++){  		scanf("%d",p+i); //本来写成scanf("%d",&a[i]);   	}  	for(int i=0;i<5;i++){  		printf("%d ", *(p+i));   	}  	return 0;  }

2.指针的加减

指针也是变量,可以加减。

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10]={1,2,3,4,5};  	int *pa=a;    	cout<<a[0]<<endl; //结果是1   	cout<<pa<<endl;   //0x70fdf0  	cout<<*pa<<endl;  //结果是1  	  	pa++;  	cout<<pa<<endl; //0x70fdf4  	cout<<*pa<<endl;  //2  	  	pa=pa+2;  	cout<<pa<<endl; //0x70fdfc  	cout<<*pa<<endl;  //4  	  	pa--;  	cout<<pa<<endl; //0x70fdf8  	cout<<*pa<<endl;  //3   	return 0;  }



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:C++知识 浏览: