Chinaunix首页 | 论坛 | 博客
  • 博客访问: 653790
  • 博文数量: 150
  • 博客积分: 4070
  • 博客等级: 中校
  • 技术积分: 1795
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-23 21:44
文章分类

全部博文(150)

文章存档

2012年(1)

2011年(123)

2010年(26)

分类: C/C++

2011-07-01 20:13:04

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来访问数组元素,代码如下:
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     int a[10]= {1,2,3,4,5,6,7,8,9,10};
  6.     int *pa = a;
  7.     for (int i = 0; i < 10; i++)
  8.     {
  9.         cout<<a[i]<<" ";
  10.     }
  11.     cout<<endl;

  12.     for (i = 0; i < 10; i++)
  13.     {
  14.         cout<<*(a+i)<<" ";
  15.     }
  16.     cout<<endl;

  17.     for (i = 0; i < 10; i++)
  18.     {
  19.         cout<<pa[i]<<" ";
  20.     }
  21.     cout<<endl;

  22.     for (i = 0; i < 10; i++)
  23.     {
  24.         cout<<*(pa+i)<<" ";
  25.     }
  26.     cout<<endl;

  27.     for (i = 0; i < 10; i++)
  28.     {
  29.         cout<<*pa++<<" ";
  30.     }
  31.     cout<<endl;

  32.     return 0;
  33. }
3、指针与一维数组
   关系跟第二点类似
4、指针与多维数组
   如指针与二维数组,定义如下:
   如: int a[3][4];   int (*p)[4];   p = a;
5、指针与字符数组
  
 
阅读(712) | 评论(0) | 转发(0) |
0

上一篇:虚函数及继承

下一篇:结构和联合的区别

给主人留下些什么吧!~~