指针与const

本文深入探讨了C/C++中指针与const的概念,通过实例解释了指针的基本原理,包括指针变量、常量指针和指向常量的指针的区别。同时,详细解析了const修饰符如何限制指针的操作,帮助读者理解复杂指针类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

指针与const

简述

代码及说明

	char chStr1[] = "Hello World pStr1";
    char chStr2[] = "Hello World pStr2";
    chStr1[1] = 'h';
    /*
     * 什么是指针?指针的值是什么?
     * 指针是变量,存的值是地址。
     * 变量?类似int
     * 地址?指针里存的值也是数值,只不过,其值代表的是另外一个"东西"的"位置"信息
     *      比如: 你去拿一下快递***(A),在***街***号(B)。其中A就是指针, B就是地址(A的地址)
    */
    //chPtr0: 变量指针 或 指针变量
    char *chPtr0 = chStr1;
    chPtr0[0] = 'h'; // 指向的内存可以被修改
    chPtr0 = chStr2; // 自身可以指向别的地方(变)

    //chPtr1: <常量><<指针>>, 本身是一个指针,变量;修饰的值所指内存不能被修改
    const char *chPtr1 = chStr1;
    //chPtr1[1] = 'h'; // 所指内存不能被修改
    chPtr1 = chStr2;   // 可以指向新的地址

    //chPtr2: <指针><<常量>> 本身是一个常量指针,常量
    //        本身不能被修改(不能指向新的地址),但所指内存可以被修改
    char *const chPtr2 = chStr1;
    //chPtr2 = chStr2;
    chPtr2[0] = 'h';

    //chPtr3: 指向常量的常量指针(很显然是chPtr1 + chPtr2的累加性质)
    const char *const chPtr3 = chStr1;
    //chPtr3[0] = 'h';
    //chPtr3 = chStr2;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值