C语言的const函数修饰指针

文章目录

  • 一、const函数的作用

int a = 10;
int *p ;
p = &a;

从上面的代码分析,p 存放的就是a的地址, *p 存放的就是 a 的值。

一、const函数的作用

一旦使用了const函数修饰一个变量,那么这个变量就无法变化了。
所以下面三种情况:

const int *p;
int const *p;
int * const p;

const int *p 和 int const *p 是一样的,所以这里只分析 int const *p; 和 int * const p;

const *p 修饰的是 * p,而 * p存放的是对应地址的值,所以这里我们不能修改对应地址的值,但是可以修改p的地址。

#include 
int main()
{
    int a = 10;
    int b = 10;
    int const*p = &a;
    *p = b; // 这里会报错
}

C语言的const函数修饰指针_第1张图片

告诉你*p是不可以被修改的。
*p存放的是变量的值, 所以这个时候变量的值是不能被改变的。

#include 
int main()
{
    int a = 10;
    int b = 10;
    int * const p = &a;
    *p = b;
    p = &b;
}

更换写法过后,这个错误就不存在了。但是这个时候回告诉你 p 是一个不可修改的值。 p存放的是一个地址,这个时候地址不能被修改的,

C语言的const函数修饰指针_第2张图片

你可能感兴趣的:(C语言学习,c语言,开发语言)