码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • c++语言基础:常量指针和指针常量的区别


    1)const int *p

    2)int const *p

    3)int * const p

    4)const int * const p

    (1)

    当把 const 放最前面的时候,它修饰的就是 *p,那么 *p 就不可变。*p 表示的是指针变量 p 所指向的内存单元里面的内容,此时这个内容不可变。其他的都可变,如 p 中存放的是指向的内存单元的地址,这个地址可变,即 p 的指向可变。但指向谁,谁的内容就不可变。

    (2)

    const只修饰其后的变量,int const *p 和 const int *p等价

    (3)

    int * const p

    此时 const 修饰的是 p,所以 p 中存放的内存单元的地址不可变,而内存单元中的内容可变。即 p 的指向不可变,p 所指向的内存单元的内容可变。

    (4)

    *p 和 p 都被修饰了,那么 p 中存放的内存单元的地址和内存单元中的内容都不可变。

    int a,b;

    int *const p=&a;//指针常量

    *p=9;

    p=&b;//错误

    因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改

    int a,b;

    const int *p=&a;

    *p=9;//错误

    p=&b;

    因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可通过该指针修改,但是指针指向的地址可以改变。

  • 相关阅读:
    OC-NSArray
    uni-app 中的 picker 组件基于后台对象数组数据格式的使用
    图文详解 VCF 生信格式 (变异信息)
    【亲测有效】C盘容量满了,给C盘扩容!!!
    小白开始学习C++
    【从零开始学习 SystemVerilog】1.1、SystemVerilog 概述
    面试必问 | 必须了解的MySQL三大日志:binlog、redolog 和 undolog
    opencv-python库的安装【一文读懂】
    直流无刷电机(BLDC)转速闭环调速系统及Matlab/Simulink仿真分析
    解读JVM级别本地缓存Caffeine青出于蓝的要诀 —— 缘何会更强、如何去上手
  • 原文地址:https://blog.csdn.net/qq_51046087/article/details/125566914
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号