[牛人杂谈] 定义一个不能被修改的指针

[复制链接]
263|2
xinpian101 发表于 2025-9-10 09:47 | 显示全部楼层 |阅读模式
数组的名字是指针,但是这个指针不能被修改,这是怎么实现的呢,实际上这就是一个不能被修改的指针。

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int bb[2];
  5.         int m=5;
  6.         *bb =m;
  7.         int * const k = &m;
  8.         *(bb+1)=6;
  9.         k=bb;

  10.     printf("%d \n",bb[0]);
  11.     printf("%d \n",bb[1]);

  12.     printf("------------- \n");
  13.    return 0;
  14. }


报错
main.c: In function ‘main’:
main.c:10:3: error: assignment of read-only variable ‘k’
   10 |  k=bb;
      |   ^
 楼主| xinpian101 发表于 2025-9-10 09:48 | 显示全部楼层
如果删除第十行对 k的修改就可以了。
const 放在变量k前面修饰的是变量 k,该变量不可以被修改,这就是指针。因为在前面还有一个*
 楼主| xinpian101 发表于 2025-9-10 09:48 | 显示全部楼层
数组的本质定义应该跟这个定义方式是类似的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

129

主题

1650

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部