const修饰指针变量

 

目录

1.常规形式

2.const放在*的左边

3.const放在*的右边


1.常规形式

&取地址操作符,取出n的地址并存储到指针变量p中。*解引用操作符,通过p中存放的地址,找到指向空间,*p其实就是n的变量了,所以*p=20,这个操作符就是把n改成了20.

#include <stdio.h>
void test1()
{
    int m = 10;
    int n = 5;
    int* p = &n;
    *p = 20;
    p = &m;
}
int main()
{
    test1();
    return 0;
}

2.const放在*的左边

修饰的是指针指向的内容,限制的是*p。指针指向的内容不能通过指针来改变,但是指针变量本身的内容可变。

void test2()
{
    int m = 10;
    int n = 5;
    const int* p = &n;//const修饰的是*p
    *p = 20;//指针指向的内容不能通过指针来改变
    p = &m;//但是指针变量本身的内容可变。
}

3.const放在*的右边

修饰的是指针变量本身。指针变量的内容不能修改,但是指针指向的内容可以通过指针修改。

void test3()
{
    int m = 10;
    int n = 5;
    int *const p = &n;//const修饰的是变量本身
    *p = 20;//指针指向的内容可以通过指针修改
    p = &m;//指针变量的内容不能修改
}

4.例子

很简单吧,答案一思考就想出来啦!完结撒花。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值