指针和数组的区别

指针和数组的分配区别

数组是开辟一块连续存储的内存空间,数组的标识符(数组名)可以代表整个数组。sizeof可以获得整个数组占内存空间大小。

所以数组保存的数据,调用数据的时候 直接访问数据

指针是定义的时候,再栈中开辟一块内存,存放指针的地址(指针的地址:只存放指针的地址,不存放指向的数据)

所以指针保存数据的地址,间接访问数据(先获得指针的内容,再将指针内容做为地址进行读取)

在《C专家编程》中提出三个标准和三个例外,可以有效区分指针和数组的区别,以及什么情况下是相同的

规则1:表达式中的数组名 编译器当作 指向数组的第一个元素指针

规则2:数组下标 总是 指针的偏移量 相同

规则3:在函数 的 参数声明中,数组名 被编译器当作 指向该数组的 第一个元素的 指针

对于下列情况下,数组的引用 不能用 指向该数组第一个元素的指针 来代替

特例1. 数组做为sizeof()的操作数,sizeof显然求的是整个数组的大小,而不是指向第一个元素的大小

特例2. 使用 & 操作符 取数组的地址

特例3. 数组 是 一个字符串常量  初始化值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值