首页 > 其他分享 >const与指针的四种关系

const与指针的四种关系

时间:2023-05-10 13:33:31浏览次数:29  
标签:p2 const 变量 int 赋给 四种 指针

 

定义变量

int a = 1;

const int b = 2;

 

1. 将  普通变量地址  赋给  普通指针

int * p1 = a;   //  正确

 

2. 将  const变量地址  赋给  普通指针

int * p2 = b;  //  错误

// p2是普通指针,意味着可以通过p2修改b的值,而b为const,不可修改,造成权限冲突

// 如果一定要这么做,可以使用强制类型转换const_cast

 

3. 将  普通变量地址  赋给  指向const的指针

const int * p3 = a;  // 正确

 

4. 将  const变量地址  赋给  指向const的指针

const int * p4 = b;  //  正确

 

标签:p2,const,变量,int,赋给,四种,指针
From: https://www.cnblogs.com/wkxnk/p/17387725.html

相关文章

  • 常量指针和指针常量的区别
     定义变量inta=1;intb=2; 常量指针:顾名思义,指向常量的指针(apointertoconstint),不能通过该指针修改变量的值(不通过该指针仍然可以修改)constint*p1=&a; // *p1为const,即指针指向的值为const*p1+=1;  // 错误,试图通过p1修改a的值p1=&b;   ......
  • 二级指针
     什么是二级指针?有一个变量a,他被定义为存放int数据4,如果有一个变量pa存放的内容是变量a的地址,我们把他a叫做指针,也叫他一级指针。现在我们有另外一个变量ppa,paa的内容存放的是pa的地址,那么paa就是二级指针,即指向指针的指针。int a = 4;int *pa = &a;int **ppa =......
  • 函数 指针 数组
    首先抛出几个问题1什么是函数?什么是数组?什么是指针?2怎么区分函数指针指针函数指针数组函数指针数组?开始解读:首先明确这几个概念A函数:表示实现特定功能的可复用代码块。B指针:保存变量地址的特殊变量(指针既然是变量,那么也是有地址的,当我们想要对指针自己进行操作时,可能......
  • OpenGL学习笔记-3:编译shader报错: cannot convert from 'const highp float' to 'Frag
    报错信息: ERROR::SHADER_COMPILATION_ERRORoftype:FRAGMENTERROR:0:10:'assign':cannotconvertfrom'consthighpfloat'to'FragUserData4-componentvectorofhighpfloat'-------------------------------------------------......
  • C代码审计之指针诡计
    指针诡计(pointersubterfuge)是指通过修改指针值(函数指针、对象指针)来利用程序漏洞的方法。发生溢出的缓冲区被用于修改函数指针或对象指针的值。攻击函数指针使得攻击者能够直接将程序的控制权转移到由其提供的任意代码,对对象指针进行修改并赋值的能力导致任意内存写。 缓冲区......
  • 对比编程语言的四种错误处理方法,哪种才是最优方案?
    作者:AndreaBergia译者:豌豆花下猫@Python猫英文:Errorhandlingpatterns转载请保留作者及译者信息!错误处理是编程的一个基本要素。除非你写的是“helloworld”,否则就必须处理代码中的错误。在本文中,我将讨论各种编程语言在处理错误时使用的最常见的四种方法,并分析它们的优......
  • const 与 auto
    auto只能推断出类型,引用不是类型,所以auto无法推断出引用,要使用引用只能自己加引用符号auto关键字在推断引用的类型时:会直接将引用替换为引用指向的对象。其实引用一直是这样的,引用不是对象,任何使用引用的地方都可以直接替换成引用指向的对象auto关键字在推断类型时,如果没......
  • 四种语言刷算法之环形链表 II
    力扣142. 环形链表II1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){if(head==NULL||head->next==NULL)returnNULL;stru......
  • const关键字
    1.const修饰普通变量constinta=10;a被视为常量2.const修饰指针inta=10;intconst*b=&a;此时b为常量指针,因为const修饰的是*b,所以指针的指向的内容不能变,指向可变,int*constc=&a;此时c指针常量,c的指向不可以变,但可以通过c来改变指向的内容3.const引用con......
  • SQLSERVER四种事务隔离级别
    SQLSERVER的四个事务隔离级别到底怎么理解? 一:背景1.讲故事在有关SQLSERVER的各种参考资料中,经常会看到如下四种事务隔离级别。READUNCOMMITTEDREADCOMMITTEDSERIALIZABLEREPEATABLEREAD随之而来的是大量的文字解释,还会附带各种 脏读, 幻读, 不可重复读 常......