使用二级指针修改带const的只读变量

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用二级指针修改带const的只读变量相关的知识,希望对你有一定的参考价值。

使用二级指针修改带const的只读变量

修饰词带const的常量一般是作为只读变量,不容易被改变其赋值,但是使用二级指针可以改修初始值

虽然编译有报警提示,但是还是可以编译通过的。

#include <stdio.h>
int main()
{
const int n = 88, m = 77;
  int *pal = &n;
  int **pal2 = &pal;
  **pal2 = 66;
  printf("\\n%d", n);
}

去除该报警信息

  • 方法一:
#include <stdio.h>
int main()
{
  const int n = 88, m = 77;
  int *pal = (int *)&n;//方法一:改变了const的“常量特性”
  int **pal2 = &pal;
  **pal2 = 66;
  printf("\\n%d", n);
}

  • 方法二:
int main()
{
  const int n = 88, m = 77;
  const int *pal = &n;//用const修饰的指针来接收
  int **pal2 = (int **)&pal;//强制转换
  **pal2 = 66;
  printf("\\n%d", n);
}

以上是关于使用二级指针修改带const的只读变量的主要内容,如果未能解决你的问题,请参考以下文章

const关键字

const

第9课 const和volatile分析

C-const和static的区别, 指针作为函数的返回值, 指向函数的指针, 枚举

C语言 const使用详解

C语言 const使用详解