4、用const修饰指针

1、常量指针

        语法:const 数据类型 *变量名

        不能通过解引用的方法修改内存地址中的值(用原始变量名可以修改)

        注意:

                 指向的变量(对象)可以改变(之前是指向变量a的,后来可以改为指向变量b)

                一般用于修饰函数的形参,表示不希望在函数里修改内存中的值

                如果用于形参,虽然指向的对象可以改变,但这么做没有任何意义

                如果形参不需要改变,建议就加上const修饰,程序可读性更好

#include <iostream>
using namespace sttd;
int main()
{
    //常量指针的语法:const 数据类型 *变量名
    //通常通过解引用的方法修改内存地址的值(用原始变量名是可以修改的)
    int a=3;int b=8;
    const int*p=&a;
    //如果*p=8;报错,常量指针不可修改
    //如果a=6;不会报错输出a=6,*p=6;即用原始变量名可以修改
    cout<<"a="<<a<<" ,*p="<<*p<<endl;//正常输出a=3,*p=3
    p=&b;//改引用b的值
    cout<<"b="<<b<<",*p"<<*p<<endl;//输出b=8,*p=8
}

2、指针常量

        语法:数据类型 *const 变量名

        指向的变量(对象)不可以变。

        注意:

                在定义的时候必须初始化,否则会报错

                可以通过解引用的方法修改内存地址中的值

                C++编译器把指针常量做了特殊处理,改头换面后,有个新名字叫引用。

#include <iostream>
using namespace sttd;
int main()
{
    int a=3,b=4;
    int *const p=&a;//如果只声明不赋值会报错
    *p=13;//进行解引用
    cout<<"a="<<a<<",*p"<<*P<<endl;//输出13
    //如果改变指向对象p=&b;报错
}

3、常指针常量

        语法: const 数据类型* const 变量名

        指向的变量(对象)不可改变,不能通过解引用的方法修改内存地址中的值。

        注意:也会有个新名字叫,常引用。

总结

常量指针:指针指向可以改变,指针指向的值不可以改变。

指针常量:指针指向不可以改变,指针指向的值可以改变。

常指针常量:指针指向不可以改变,指针指向的值也不可以改变。

                

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值