指针数组与数组指针

1指针PK数组
指针指向一块地址;数组对应一块地址
指针指向地址无所谓连续;数组对应的地址连续
指针指向地址可以改变;数组对应的地址不可以改变
指针可以指向数组;数组可以存储指针 

有时候指针和数组是一致的
什么时候呢?
你比如说在一个数组作为形参的时候
它就转变为同类型的指针
都是传递首地址
进行连续操作

那为什么我们要用指针呢?
因为它效率高啊
那它怎么就效率高呢?
那我们举个例子
char ch[]="Hello World!";
char *p;
p =ch;

这个字符数组占了13个字节(还有一个换行符)
这个字符指针占了4个字节(所以的指针都占4个字节)
你看看存储空间是不是节省了

如果我们要用数组输出W
我们要先找到数组的首地址
然后后移6个单位

如果我们要用指针输出W
我们要先找到指针
然后加6

这样你可以看出来效率了吧


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

int *p[4]; //它是四个指针
          //这四个指针组成一个数组

int a[4]={1,2,3,4};
p =&a;    //进行赋值
for(int i=0;i<4;i++)
  cout<<*p[i]<<endl;
3。数组指针
int (*p)[4]; //[]的优先级高于*
             //p是一个指针变量
             //它指向一个有四个数组

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
p =a[0];     //进行赋值
for(int i=0;i<12;i++)
cout<<(*p)[i]<<endl;

4。指针数组的用处
那用指针数组的好处是什么呢?
 如果我们要定义若干字符串
但是每个字符串的长度不一定一样
如果我们用数组来存储
那么我们就应该以对大字符串的长度为基准
这样会造成存储空间的浪费
我们将采用指针数组
每个指针的字节数是4
乘以数组下标的最大值
就是所要的空间

当我们定义了一个二维数组的时候
我们用数组指针来指向它
这样会很方便

由前面的指针PK数组
我们知道当要查找数组中元素时
指针数组的索引方式要快捷

5。数组指针的用处
数组指针有一个用处是在多维数组中使用
会增加程序的灵活性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值