首页 > 其他分享 >const指针

const指针

时间:2023-12-29 22:11:35浏览次数:22  
标签:p1 const cout int num 指针

#include <iostream>
using namespace std;
int main(){


    // const 指针
    int num = 1;
    int another = 2;

    // 这个指针指向的内容,不能透过这个指针来修改
    // 可以理解为const int*, const int 的指针 ==> 常量指针
    const int * p1 = &num;
    *p1 = 3; // error
    num = 3; // okay
    cout<<"num: "<<num<<endl;

    // 可以通过p2修改该指针指向的内容
    int * const p2 = &num;
    *p2 = 3; // okay
    p2 = &another; // error

    // 都不可以修改
    const int * const p3 = &num;
    // Summary: 这里能通过就近原则,靠近指针const,则不能修改指针,靠近目标变量,则不能修改目标变量
    return 0;
}

标签:p1,const,cout,int,num,指针
From: https://www.cnblogs.com/bai7/p/17935767.html

相关文章

  • 指针与数组
    数组名访问数组元素a[i]等价于*(a+i)数组名也是指针,但是是指针常量,指针操作赋值给普通指针inti,*pa,a[]={3,4,5,6,7,3,7,4,4,6};pa=a;a++;//不可以pa++;//可以inti,a[]={3,4,5,6,7,3,7,4,4,6};int*constpa=a;/*注意const的位置:不是constint*pa......
  • CF1917F Construct Tree 题解
    Description给你一个数组\(l_1,l_2,\dots.l_n\)和一个数字\(d\)。问你是否能够构造一棵树满足以下条件:这棵树有\(n+1\)个点。第\(i\)条边的长度是\(l_i\)。树的直径是\(d\)。只需要判断是否有解即可。\(2\len\le2000,1\led\le2000,1\lel_i\led\)。Solutio......
  • const和readonly有什么区别?
    都可以标识一个常量。主要有以下区别:1、初始化位置不同。const必须在声明的同时赋值;readonly即可以在声明处赋值;2、修饰对象不同。const即可以修饰类的字段,也可以修饰局部变量;readonly只能修饰类的字段3、const是编译时常量,在编译时确定该值;readonly是运行时常量,在运行时确定该值......
  • CF1917F Construct Tree 题解
    题目链接:https://codeforces.com/contest/1917/problem/F题意有\(n\)条长度\(l_i\)的边,问它们是否能组成一棵\(n+1\)个节点的树,使得树的直径长度为\(d\)。\(n,d\le2000\)。题解首先当然要存在一个边集\(D\),使得\(\sum\limits_{i\inD}l_i=d\),这可以使用背包......
  • 代码随想录day 02 双指针 滑动窗口 螺旋矩阵
    有序数组的平方题目如下:如果是可以使用O(nlogn)或以上复杂度的算法,本题可以简单的先平方一遍,然后使用排序算法就可以了但是要求使用O(n)复杂度的算法,那么我首先想到的是昨天的快慢指针类似的想法:我想先平方一次数组,然后从中间开始排序,如下但是运行之后发现从中间开始进行相邻元......
  • 【C++】使用指针,动态多维数组
    二维数组intm=3,n=2;int**arr;//动态创建二维数组[3][2]arr=newint*[m];//这里是mfor(inti=0;i<m;i++){ arr[i]=newint[n];//这里是n}三维数组intx=3,y=4,z=5;//arr[3][4][5]int***arr;arr=newint**[x];for(inti=0;i<x;i++){......
  • 【CF1917F】Construct Tree
    题目题目链接:https://codeforces.com/contest/1917/problem/F给出\(n\)条边的边权,询问是否可以构造出一棵树,使得所有边都被用上恰好一次且直径为\(d\)。\(n,d\leq2000\)。思路首先肯定是找出一条长度为\(d\)的链,然后判断可不可以把剩下的所有边都挂在这条链的带权重心......
  • springboot 中,ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
    划水。。。ApplicationRunner、InitializingBean、@PostConstruct执行顺序InitializingBean是Spring提供的一个接口,它只有一个方法afterPropertiesSet(),该方法会在容器初始化完成后被调用。ApplicationRunner是SpringBoot提供的一个接口,它有一个方法run(),该方法会在......
  • 代码随想录day 01 二分法与快慢指针
    二分法题目:实现代码如下:值得注意的是实现的方法是利用左闭右开区间还是左闭右闭区间根据选择的不同,判断条件不同将迭代的值带入到条件看符不符合区间要求就不会混淆二者快慢指针题目:本题实际上可以通过二重for循环暴力求解,复杂度是O(n^2)但是测试过程中发现超时遂放弃......
  • 智能指针
    智能指针C++中的智能指针分为4类,分别是:共享指针(std:shared_ptr)独占指针(std::unique_ptr)auto_ptrweak_ptr其中,auto_ptr已被C++11标准摒弃,C++17标准已经不可用。智能指针的出现,能够很好的解决原始指针因为忘记释放内存而导致的一系列问题,或是因为删除不彻底而形成的空悬指针问题......