1、指针与数组的关系
当一个指针变量被初始化为数组名时,该指针变量就指向了数组,如:
char str[20], *ptr;
ptr = str;
ptr被置为数组str的第一个元素的地址,及数组的首地址,即ptr等于&str[0],也是ptr等于str。这样就可以通过指针来访问数组。
2、指向数组元素的指针
若有如下的定义:
int a[10], *pa;
pa = a;
则pa指向数组的第一个元素,pa也等于&a[0],pa是一个变量,因此可以进行++,--等运算,而a是数组首地址,是一个常量,因此不能进行++,--等。可以利用pa来访问数组元素,代码如下:
- #include <iostream>
- using namespace std;
- int main()
- {
- int a[10]= {1,2,3,4,5,6,7,8,9,10};
- int *pa = a;
- for (int i = 0; i < 10; i++)
- {
- cout<<a[i]<<" ";
- }
- cout<<endl;
- for (i = 0; i < 10; i++)
- {
- cout<<*(a+i)<<" ";
- }
- cout<<endl;
- for (i = 0; i < 10; i++)
- {
- cout<<pa[i]<<" ";
- }
- cout<<endl;
- for (i = 0; i < 10; i++)
- {
- cout<<*(pa+i)<<" ";
- }
- cout<<endl;
- for (i = 0; i < 10; i++)
- {
- cout<<*pa++<<" ";
- }
- cout<<endl;
- return 0;
- }
3、指针与一维数组
关系跟第二点类似
4、指针与多维数组
如指针与二维数组,定义如下:
如: int a[3][4]; int (*p)[4]; p = a;
5、指针与字符数组
阅读(765) | 评论(0) | 转发(0) |