const这块的难点

const修饰指针有以下的几种形式 ,不同的形式 它的意义不一样。

形式1:

int a=23;

const int *p=&a; a是int型,&a是int *型的,要把int *型的赋给 const int *型的。涉及到了点类型转换。

问 const int *p=&a;这个操作,导致了谁不能被操纵了?!

这里修饰的是 *p,所以 *p 如果重新赋值是不可以的!!

*p不能变,但是p是可以变的。

第二种:

int const * p 这种情况和 const int *p 是一模一样的,都是修饰 *p。

第三种:

int * const p;结果是 *p可以变,p不能变。

还是比较容易理解的:

就看const修饰的是谁,const如果在*p的前面,修饰的就是*p,*p就是常量了,就不能变(也就是不能通过*p重新赋值)。

const如果放在* 和 p中间了, * const p,修饰的就是p,p就是常量了,就不能重新赋值了。

第四种:

如果既想让*p不能变,又想让 p不能变,如何写??!!

让他俩都被修饰——const int * const p(第一个const修饰了*p,第二个const修饰了p),这时,*p不能变,p也不能变。

volatile (是对存储位置的优化)

restrict(对代码量的优化)

const修饰指针+volatile +restrict的更多相关文章

  1. const修饰指针

    关于const修饰指针的情况,一般分为如下4种情况: ; const int *a =&b; //情况1 int const *a =&b; //情况2 int* const a =& ...

  2. C语言--const修饰指针解析

          这种例子在我们平时编程时可能会很少用,但是在面试时被问的可能性就很大了. 用const修饰指针,常见的情况可以分为四种: 1.const int *p; // p 可变,p 指向的对象不可 ...

  3. 关于const修饰指针

    const修饰指针,一般分为如下四种情况: int b = 500; const int *a = &b;   //情况1 int const *a = &b //        2 ...

  4. C++ --const修饰指针

    const修饰指针 1.const修饰指针 (常量指针)常量的指针 const int *p = &a; const修饰的是*p(表示内容为常量),不是p(指针) 指针指向的地址可以改,但指针 ...

  5. C++中使用const修饰指针

    在本文中呢,主要讲解四个方面,即:常量数据的与否和常量指针的与否中const如何对指针进行修饰: 1.指向非常量数据的常量指针 对于一个指向非常量数据的常量指针,我们应该清楚的知道,在这我们注重的是指 ...

  6. const修饰指针的三种效果

    当用const进行修饰时,根据const位置的不同有三种不同效果. 判断的标准是:const修饰谁,谁的内容就是不可变的. 1 const int *p = &a; const修饰*p, *p ...

  7. const修饰指针时应注意的问题

    1.指向常量的指针 顾名思义,一个指针指向const对象,则称它为指向常量的指针. ; int* ptr=&a; //错误 const int* ptr=&a; //必须用const来 ...

  8. C++中const修饰基本数据类型、指针、引用、对象

    const修饰基本数据类型 #include <iostream> using namespace std; void main(){ const int a = 1; const cha ...

  9. C++中的const和指针组合

    在C++里,const修饰指针有以下三种情况 (1)指针常量:即指向常量的指针 const  int *p或者int const *p const在*前,,可以这样理解它的功能,因为const在*前, ...

随机推荐

  1. 类的综合运用-complex的实现

    实验要求: 定义一个复数类Complex,使得下面的代码能够工作: Complex c1(3,5);     //用复数3+5i初始化c1: Compex c2=4.5;      //用实数4.5初 ...

  2. fcntl设置FD_CLOEXEC标志作用【转】

    本文转载自:https://blog.csdn.net/ustc_dylan/article/details/6930189 通过fcntl设置FD_CLOEXEC标志有什么用?close on ex ...

  3. bzoj 3513: [MUTC2013]idiots FFT

    bzoj 3513: [MUTC2013]idiots FFT 链接 bzoj 思路 参考了学姐TRTTG的题解 统计合法方案,最后除以总方案. 合法方案要不好统计,统计不合法方案. \(a+b< ...

  4. zabbix历史数据相关表研究

    zabbix历史数据相关表研究 history和trends相关表 history和trends都是存储历史数据的地方.一般是通过监控项(item)配置里.匹配更新监控项(item)和设置HouseK ...

  5. 从客户端取到浏览器返回的oauth凭证

    这个随便记录一下,也是朋友问我的一个问题. 在网上找了下,没找到相关的,用英文也搜索了一下,可能我的关键词没找对,找了一会没找到. 想到以前用过的rclone也是用的这样的方式,去看了下相关部分源码. ...

  6. 分治(超级easy 不要看)

    P1226快速幂 #include<bits/stdc++.h> using namespace std; #define int long long ; int f(int b,int ...

  7. 论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

    SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 2019-04-02 12:44:36 Paper:ht ...

  8. bootstrap:modal & iframe

    form提交绑定到特定的iframe & form的结果在dialog上显示 form:target属性 <!-- when the form is submitted, the ser ...

  9. 我的第一篇博客。(JavaScript的声明和数据类型的一些笔记)

    这是我的第一篇博客,务必请大家多多关照. 下面是前端js的变量和数据类型的一些笔记,不是很全请多多包涵. 1.变量 变量的声明 var 变量名 变量这个容器中放的是数据 变量的赋值 变量名 = 数据 ...

  10. 通过nginx反向代理接收应用宝回调

    年前的时候,正好公司把用来接收应用宝回调的服务从Windows服务器上迁移带Linux服务器上,没想到最后折腾了两个工作日,腾讯的文档真的无力吐槽,不知道以后会不会有人碰到我相同的问题,我先记录一下. ...