首页 > 其他分享 >const 与 指针

const 与 指针

时间:2023-06-23 10:33:53浏览次数:26  
标签:const 指向 int 修改 地址 指针

const 与 指针

指向 const 对象的指针

指向 const 对象的指针,不能够修改指针指向对象的值;但是可以修改指针的指向。举个例子:就是不能更换房间内的物品,但是可以更换房间。

我们都知道,指针的值是空间中的一个地址:也就是说不能修改地址指向对象的值;但是可以给指针一个新的地址。

#include <iostream>
 
int main(int argc, char const *argv[])
{
    int pi = 300;
    const int *pint = &pi; 
    std::cout << "*pint=" << *pint << "\tpint=" << pint << endl;
    int pi2 = 400;
    // *pint = 500; //error 不能直接修改指针的指向的对象的值
    pint = &pi2; //可以修改指针的指向
    std::cout << "*pint=" << *pint << "\tpint=" << pint << endl;
    
    return 0;
}

const 指针

const 指针即常量指针。指针的值不能修改,也就是说指针指向的地址不能变,但是可以修改指向对象的值。还是用房间与物品举例子:房间不能换,但是房间内的物品可以换。

#include <iostream>
 
int main(int argc, char const *argv[])
{
    int number = 100;
    int *const pNumber = &number;
    std::cout << "*pNumber=" << *pNumber << "\tpNumber" << pNumber << endl;
    //output : *pNumber=100    pNumber0x5ffe50
    int number2=200;
    // pNumber=&number2; // error : const 指针不能指向新的对象
    number = 200; //可以修改const指针指向对象的值;指针指向的地址不变。
    std::cout << "*pNumber=" << *pNumber << "\tpNumber" << pNumber << endl;
    //output : *pNumber=200    pNumber0x5ffe50
 
    return 0;
}

标签:const,指向,int,修改,地址,指针
From: https://www.cnblogs.com/pangzishuoma/p/17498800.html

相关文章

  • const修饰指针
    intmain(){inta=10;intb=10;//const修饰的是指针所以指针指向可以修改但指针的值不可以更改constint*p1=&a;p1=&b;//*p1=100;//const修饰的是常量指针指向不可以更改指针指向的值可以修改int*constp2=&a;//p2=&b;*p2=100;constint*con......
  • golang 给对象的基础数据类型的指针类型的属性赋值
    概要有时我们可能碰到定义成下面这样的结构体,结构体里某些属性是基础数据类型,更确切的说,是基础数据类型的指针类型。typeStudentstruct{ namestring`json:"name"` age*int`json:"age"`//age是整型指针}不可行的写法此时该如何对这种成员属性进行赋值呢,下面......
  • #yyds干货盘点# LeetCode程序员面试金典:复制带随机指针的链表
    题目:给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制......
  • Go-指针篇
    一、简单演示与C指针类似  1)指针变量存的是一个地址,地址指向的空间存的才是值2)获取指针类型所指向的值,使用 *  二、使用细节1)值类型,都有对应的指针类型,形式为*数据类型,比如int的对应指针就是*int2)值类型包括:基本数据类型int系列,float系列,bool,string,......
  • 条款02:尽量使用const、enum、inline替换define
    文中说用enum代替define,只能说算是define在定义常量时的一种替代品,不能说明两者有何优劣。所以重点还是在const和inlinevsdefine。constvsdefine:为什么建议用const而非define?define定义常量的局限性:符号是否在编译器可见。define定义的常量在预处理阶段进行宏替换,符号......
  • C语言中数组和指针
    (文章目录)前言本文将给大家带来C语言中非常重要的两个知识点,指针和数组。一、指针的概念指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,指针既然都用来存放地址了那就说明指针也是一个变量。二、指......
  • var、let、const 的区别
     varletconst变量提升√××重复声明(同作用域)√××赋初值××√变量全局局部局部var声明的变量有变量提升的特性,而let、const没有var声明的变量会挂载到windows对象上,所以使用var声明的是全局变量,而let和const声明的变量是局部变......
  • 精通c语言中的指针-数组
    一维数组:intara[3]={1,2,3};printf("%d\n",ara):printf("%d\n",&ara):打印之后,发现ara和&ara两个值是一样的,为什么?按照我们学习的理解,&ara是取ara的地址,一个是地址,一个是值,不应该一样,那为什么打印出来会是一样的? 从汇编的角度可以解释这个问题:printf("%d\n",ara):......
  • 各种语言中对指针的叫法
    如果没有指针,就无法构造正统的数据结构,因此,比较成熟的、正统的编程语言,必定会存在指针3。3以前,FORTRAN、COBOL和BASIC中都没有指针,但是在fortran90、VisualBasic等升级版中,正式引入了指针功能。咦?我怎么听说Java就没有指针呢……我可以负责任地告诉你,这是个谣言。......
  • Const 关键字 与指针
    Const关键字与指针发表于2007年04月29日由不及格的程序员-八神星期一天气:晴 使用指针会涉及到两个对象一个是指针本身,另一个是它指向的对象.将指针声明为const就使对象为常量而不是指针为常量;例如:constchar*p="asdf";//指向常量的指针p[2]=‘d’; /......