XZ Blog XZ Blog
首页
  • 人体姿态估计
  • 2D-3D-Lifting
  • 动作质量评估
  • 基于RGBD视觉信息的异常行为识别
  • 基于RGB视频的行为识别
  • 大模型应用
  • 网络结构

    • Transformer
    • GCN
    • Graph Transformers
    • Diffusion Model
  • 深度学习
  • 论文解读
  • 后端开发
  • Git
  • 博客搭建
  • Debug
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xzhouzeng

@渐行。
首页
  • 人体姿态估计
  • 2D-3D-Lifting
  • 动作质量评估
  • 基于RGBD视觉信息的异常行为识别
  • 基于RGB视频的行为识别
  • 大模型应用
  • 网络结构

    • Transformer
    • GCN
    • Graph Transformers
    • Diffusion Model
  • 深度学习
  • 论文解读
  • 后端开发
  • Git
  • 博客搭建
  • Debug
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 后端开发

    • cmake介绍
    • \{}统一初始化方
    • C++11新特性
    • C++标准推荐使用标准库头文件
    • C++动态内存分配和静态的区别
    • C++类函数后面加const的作用
    • C++类和结构区别
    • C++内存区域
    • nullptr与NULL
    • priority_queue使用
    • string , cstring , string h 的区别
    • using与typedef定义别名区别
    • vector中[]和at访问区别
    • 常量指针和指针常量
      • 空类大小及相关介绍
      • 容器emplace与push操作
      • 数据结构操作——时间复杂度
      • 智能指针(Smart Pointers)
      • 最大堆的实现
    • Git

    • 博客搭建

    • Debug

    • python开发

    • 技术
    • 后端开发
    xzhouzeng
    2023-03-20
    目录

    常量指针和指针常量

    # 常量指针和指针常量

    Created: March 18, 2024 10:38 AM

    在C++中,常量指针(Constant Pointer)和指针常量(Pointer to Constant)是两种不同的概念,它们涉及到指针和常量的组合使用方式。理解它们的区别是理解C++指针和常量使用的重要部分。

    # 常量指针(Pointer to Constant)

    常量指针指向一个常量值,你不能通过这个指针来修改其指向的值,但是指针本身的指向是可以改变的。换句话说,你不能通过这个指针来改变它指向的对象的值,但你可以改变指针指向另一个对象。

    语法:

    cppCopy code
    const 类型名* 指针名;
    
    
    1
    2
    3

    示例:

    cppCopy code
    const int* ptr; // ptr是一个指向常量整数的指针
    int value = 5;
    int newValue = 10;
    ptr = &value; // 合法
    //*ptr = 10; // 非法,不能通过ptr修改value的值
    ptr = &newValue; // 合法,ptr可以改变指向
    
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 指针常量(Constant Pointer)

    指针常量是一个指针,它的指向(即存储的地址)不可改变,但是你可以通过这个指针来修改它所指向的对象的值。一旦指针常量被初始化,它就不能再指向另一个对象。

    语法:

    cppCopy code
    类型名* const 指针名;
    
    
    1
    2
    3

    示例:

    cppCopy code
    int value = 5;
    int* const ptr = &value; // ptr是一个常量指针,指向value
    *ptr = 10; // 合法,可以通过ptr修改value的值
    int newValue = 15;
    //ptr = &newValue; // 非法,ptr不能改变指向
    
    
    1
    2
    3
    4
    5
    6
    7

    # 常量指针常量(Constant Pointer to a Constant)

    此外,还有一种组合是既不能通过指针修改所指向对象的值,也不能改变指针的指向。

    语法:

    cppCopy code
    const 类型名* const 指针名;
    
    
    1
    2
    3

    示例:

    cppCopy code
    int value = 5;
    const int* const ptr = &value; // ptr是一个指向常量的常量指针
    //*ptr = 10; // 非法,不能通过ptr修改value的值
    int newValue = 15;
    //ptr = &newValue; // 非法,ptr不能改变指向
    
    
    1
    2
    3
    4
    5
    6
    7

    理解这些概念有助于更准确地控制你的数据和指针行为,尤其是在涉及API设计和数据保护时。

    编辑 (opens new window)
    vector中[]和at访问区别
    空类大小及相关介绍

    ← vector中[]和at访问区别 空类大小及相关介绍→

    最近更新
    01
    VideoLLMs
    03-20
    02
    Video2Script
    12-07
    03
    多模态
    11-09
    更多文章>
    Theme by Vdoing | Copyright © 2022-2024 xzhouzeng | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式