首页 > 其他分享 >关于常量指针和指针常量

关于常量指针和指针常量

时间:2024-10-10 11:21:04浏览次数:11  
标签:const 常量 point int 关于 ptr 指针

关于常量指针和指针常量

知乎上看到一篇关于这两个概念的理解,感觉挺通俗易懂的,在此记录一下。

①const int p;
②const int* p;
③int const* p;
④int* const p;
⑤const int* const p;
⑥int const* const p;
第一种是常量整数,没什么好说的。
后面五种是指针,有一个简便的办法记忆。
从右往左读,遇到p就替换成“p is a ”遇到*就替换成“point to”。
比如说
②读作:p is a point to int const. p是一个指向整型常量的指针。
③读作:p is a point to const int.意思跟②相同。
④读作:p is a const point to int.p是一个常量指针,指向整型。
⑤读作:p is a const point to int const.
⑥读作:p is a const point to const int.
⑤和⑥的意思相同,p都是常量指针,指向整型常量。

const int  ptr = 5;     // ptr为常量,初始化后不可更改,错误如:ptr = 6
const int* ptr = &a;    //*ptr为常量,不能通过*ptr改变它指向的内容,错误如:*ptr = 5
int const* ptr;         //*ptr为常量,同上
int* const ptr = &a;    // ptr为常量,初始化后不能再指向其它地址,错误如:ptr = &b
Reference

如何理解常量指针与指针常量?

标签:const,常量,point,int,关于,ptr,指针
From: https://blog.csdn.net/lianyunwangqian/article/details/142816823

相关文章

  • 43 C 程序动态内存分配:内存区域划分、void 指针、内存分配相关函数(malloc、calloc、re
    目录1 C程序内存区域划分1.1代码区(CodeSection)1.2全局/静态区(Global/StaticSection)1.3栈区(StackSection)1.4 堆区(HeapSection)1.5动态内存分配2void指针(无类型指针)2.1void指针介绍2.2void指针的作用2.3void指针的特点2.4 void指针类......
  • 指针 重点干货2
    小伙伴们,如果没有看指针重点干货1的,可以去我博客里先看那篇,再看这篇哦~目录六.空间大小七.解引用访问字节八.void*指针九.const修饰指针十.野指针1.指针变量没有初始化2.指针越界访问3.避免返回局部变量的地址4.注意开辟的指针释放后要归为空指针十一.重难点分析2......
  • 关于C++中的异常概念理解
    1.基本概念异常,即exception,是C++中的基本概念之一,在某段程序发生无法继续正常执行的情况时,C++允许程序进行所谓抛出异常(有时也被称为吐出异常)的行为,这些被抛出的异常,会自动地从触发点开始向外传播,直到被捕获(有时也被称为吞下异常)或者程序终止。2.语法2.1抛出异常下面用一......
  • 关于安装Babel的问题有哪位大佬能指点指点我吗?
    我在vscode上安装babel,总是显示以下错误:npmerrorcodeENOTFOUNDnpmerrorsyscallgetaddrinfonpmerrorerrnoENOTFOUNDnpmerrornetworkrequesttohttp://registry.cnpmjs.org/@babel%2fcorefailed,reason:getaddrinfoENOTFOUNDyour-proxy-urlnpmerr......
  • 011-关于复杂业务接口产生的Bo类字段污染的思考
    @RequestParam(value="xxx",required=false)这种参数接收模式,可以在一个接口接收平行的多个字段,更为灵活。1publicBaseResponseInfogetDetailList(@RequestParam("xxx0")Longxxx0,2@RequestParam("xxx1")Stringxxx1......
  • 关于Tensorboard的一个小bug
    最近复现了github上的一个项目,链接如下:https://github.com/GzyAftermath/CAT-KD其中模型训练的过程作者用tensorboard进行了记录保存,在pycharm终端使用tensorboard--logdir=/path出现如下报错:tensorboard:无法将“tensorboard”项识别为cmdlet、函数、脚本文件或可运行......
  • 智能指针的创建
    智能指针是C++中用于自动管理动态分配内存的工具,主要有三种类型:std::unique_ptr、std::shared_ptr和std::weak_ptr。下面是如何创建和使用这些智能指针的详细说明:1.std::unique_ptr用途:std::unique_ptr是一种独占式智能指针,确保指向的对象在同一时间只能被一个指针拥有......
  • T-SQL——关于表提示:WITH(NOLOCK)
    目录1.关于With(NOLOCK)2.关于在视图上使用WITH(NOLOCK)3.关于WITH(NOLOCK)与WITH(READPAST)区分4.关于WITH(NOLOCK)产生架构锁5.参考1.关于With(NOLOCK)NOLOCK等价于:READUNCOMMITTED,即允许脏读。不发出共享锁来防止其他事务修改当前事务读取的数据,并且其他事务设置的排他锁不会......
  • 关于九种降维算法的一份介绍
    在这篇文章中我将介绍有关降维的一些东西,其中包括一些常见降维方法的概念、用途、优缺点以及python代码。一、概念降维是机器学习中常用到的一种技术,其用于减少数据集的维度,但又能保存数据集的重要信息,从而简化数据的处理,并提高计算效率、调高模型的性能以及方便可视化。二......
  • Java 指针与引用全解析
    (一)Java的发展与指针引用概念Java作为一种广泛应用的编程语言,在发展过程中借鉴了许多其他语言的特性,同时也进行了创新和改进。其中,与C++的关系尤为密切。虽然Java没有像C++那样明确的指针定义,但在底层逻辑上,Java的引用实际上与C++的指针有着相似之处。Java的设......