首页 > 其他分享 >常量指针和指针常量的区别

常量指针和指针常量的区别

时间:2023-05-10 13:11:18浏览次数:36  
标签:p2 p1 const 常量 区别 int 指针

 

定义变量

int a = 1;

int b = 2;

 

常量指针:

顾名思义,指向常量的指针(a pointer to const int),不能通过该指针修改变量的值(不通过该指针仍然可以修改)

const int * p1 = &a;  //  *p1为const,即指针指向的值为const

*p1 += 1;   //  错误,试图通过p1修改a的值

p1 = &b;    //  正确,可以修改p1的指向

a += 1;      //  正确,没有通过p1修改a的值

 

指针常量:

翻译问题,实际上应该翻译为 “常指针”(a const pointer to int),可以通过该指针修改变量的值,但是不能指向其他变量

int * const p2 = &a;  //  p2为const,即指针本身为const

*p2 += 1;  //  正确,可以通过p2修改a的值

p2 = &b;   //  错误,试图修改p2的指向

 

标签:p2,p1,const,常量,区别,int,指针
From: https://www.cnblogs.com/wkxnk/p/17387687.html

相关文章

  • django中aggregate()和annotate()区别
    在Django中,aggregate()和annotate()是两个常用的聚合函数。它们都可以用来对一组查询结果进行聚合操作,但它们的作用是有所不同的。aggregate()是用于聚合整个查询集的结果,通常用于返回一个值,例如计算查询集中所有结果的数量、平均值、最大值或最小值等。使用aggregate()......
  • C#中类与结构的区别
       在C#中,类是功能最为强大的数据类型,类定义了数据类型的数据和行为。一下示例代码是在创建Person类中使用void定义一个无返回值类型的CheckName方法:   publicclassPerson   {      public string name; //定义类成员      ......
  • 运行时的异常和一般异常的区别
    这个题目是一个笔试题目,当时说了好多还是没有说道点子上,可悲了。其实有一句话到是很靠谱,那就是运行时的异常不必要被catch的,比如检查数组是否越界,内存是否爆掉了;而一般的异常比如文件是否存在等要强制被catch的Java提供了两类主要的异常:runtime......
  • C++标准库和模板库的区别和联系?
    C++标准库包含模板库。C++标准库由三组库构成(std::是个名称空间标识符,C++标准库中的函数或者对象都是在命名空间std中定义的):(1)C库:由C标准库扩展而来,强调结构、函数和过程,不支持面向对象技术。(2)C++库:增加了面向对象的库,包含了既有关键功能的类(3)标准模板库(STL):高效的C++程序库。该......
  • 小程序开发中的插件、组件、控件到底有什么区别?
    ​小程序插件代码由一些自定义组件和JS代码文件构成,插件开发者在发布插件时,这些代码被上传到后台保存起来。当小程序使用插件时,使用者需填写插件的AppID和版本号,就可从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。由于在小......
  • 二级指针
     什么是二级指针?有一个变量a,他被定义为存放int数据4,如果有一个变量pa存放的内容是变量a的地址,我们把他a叫做指针,也叫他一级指针。现在我们有另外一个变量ppa,paa的内容存放的是pa的地址,那么paa就是二级指针,即指向指针的指针。int a = 4;int *pa = &a;int **ppa =......
  • 函数 指针 数组
    首先抛出几个问题1什么是函数?什么是数组?什么是指针?2怎么区分函数指针指针函数指针数组函数指针数组?开始解读:首先明确这几个概念A函数:表示实现特定功能的可复用代码块。B指针:保存变量地址的特殊变量(指针既然是变量,那么也是有地址的,当我们想要对指针自己进行操作时,可能......
  • C# HttpListener 和 HttpServer区别
    HttpListener和HttpServer都是C#中用于创建HTTP服务器的类库,它们的作用都是监听HTTP请求,并向客户端发送HTTP响应。它们的主要区别在于实现方式和使用场景。HttpListener是.NETFramework中的一个类,它提供了一种基于事件的异步API,可以用于创建一个轻量级的HTTP服......
  • MySQL的redolog和binlog有哪些区别?
    redolog是innodb生成的日志,主要为了保证数据的可靠性;binlog是MySQLserver层面上生成的日志,主要用于pointintime恢复和主从复制。undolog主要用于事务的回滚和一致性快照读(MVCC多版本并发控制)。MySQL中的redolog、binlog的功能很像,那么有什么区别?区别如下:red......
  • ./与../区别
    “./”:代表目前所在的目录。“../”:代表上一层目录。”/”开头:代表根目录。根目录下有Site1和Image/Image.jpg,Site1下有Page1.html文件和Site2文件夹。Site2下有Page2.html和Page2Image.jpg图片文件。 1、文件在当前目录Page2.html访问Page2Image.jpg<imgsrc=”./P......