Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3976134
  • 博文数量: 408
  • 博客积分: 10227
  • 博客等级: 上将
  • 技术积分: 9820
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-17 21:48
个人简介

非淡泊无以明志,非宁静无以致远

文章存档

2022年(1)

2021年(1)

2020年(2)

2019年(5)

2018年(4)

2017年(3)

2016年(24)

2015年(8)

2014年(7)

2013年(3)

2012年(1)

2011年(23)

2010年(179)

2009年(147)

分类: C/C++

2010-10-26 22:48:37

数组指针--指向数组的指针,是一个指针,其指向的类型是数组;

指针数组--元素为指针的数组,是一个数组,其中的元素为指针

1.指针数组

数组名本身就是一个指针,指向数组的首地址。注意这是声明定长数组时,其数组名指向的数组首地址是常量。而声明数组并使某个指针指向其值指向某个数组的地址(不一定是首地址),指针取值可以改变。

指针数组是多个指针组成了数组

 

int *p[4]; //它是四个指针

          //这四个指针组成一个数组

 

int a[4]={1,2,3,4};

p =&a;    //进行赋值

for(int i=0;i<4;i++)

  cout<<*p[i]<

  

2. 数组指针:

是指向数组的一个指针,如int (*p)[10] 表示一个指向10int元素的数组的指针。   

数组指针的动态内存申请:

char (*p)[10];

p=(char(*)[10])malloc(sizeof(char[x][x])*N);

#include

Int main(void)

{

 int a[2][2] = {{1,2},{3,4}};

 int (* p)[2];

 char * s[2] = {"hello", "world"};

 

 p = a;

 printf("%d, %d, %d, %d\n", (*p)[0], (*p)[1], (*(p+1))[0], (*(p+1))[1]);

 printf("%s %s\n", s[0], s[1]);

  return 0;

}

输出结果:

1, 2, 3, 4

hello world

3. 它们的好处:

1)指针数组的用处

那用指针数组的好处是什么呢?

 如果我们要定义若干字符串

但是每个字符串的长度不一定一样

如果我们用数组来存储

那么我们就应该以对大字符串的长度为基准

这样会造成存储空间的浪费

我们将采用指针数组

每个指针的字节数是4

乘以数组下标的最大值

就是所要的空间

当我们定义了一个二维数组的时候

我们用数组指针来指向它

这样会很方便

由前面的指针PK数组

我们知道当要查找数组中元素时

指针数组的索引方式要快捷

2)数组指针的用处

数组指针有一个用处是在多维数组中使用

会增加程序的灵活性

 

阅读(1548) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~