开发者社区> 问答> 正文

关于const的一个问题

1.void a(const int arr[], int n);
arr既然作为一个形式参数,退化为一个指针,指向数组第一个元素,那为什么const还是作用于整个数组,而不仅仅是第一个元素

展开
收起
杨冬芳 2016-05-27 15:55:58 1928 0
1 条回答
写回答
取消 提交回答
  • IT从业

    1.从编译器的角度来解释,编译器不允许const指针赋值给非const指针,因此可知const指针不能隐式转换为非const指针。

    2.由1知,const指针q加上任意常数n,即q+n仍然为const指针类型(因为const指针允许本身发生移动或者改变,即q=q+n是允许的),而q[n]=*(q+n),因此一个const指针访问的整个数组都是不可修改的只读的值。

    2019-07-17 19:18:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载