有两种不同的形式将const关键字指向指针。

第一种:让指针指向一个常量对象

const float g_moon = 1.63;
float * pm = &g_moon; // 不允许 no allowed

第二种: 是将指针本身声明为常量

声明一个指向常量的指针pt

int age = ;
const int *pt = &age;

这个声明表示, pt指向一个const int, 但不能使用*pt来修改age的值;

但是可以修改指向的内存地址

int sum = ;
p = ∑

注意,有种情况不允许:

const float g_earth = 9.80;
const float * pe = &g_earth; // 允许 const float g_moon = 1.63;
float * pm = &g_moon; // 不允许 no allowed

=======================================

另一种方式:

int sloth = ;
const int * ps = &loth;
int * const finger = &sloth; //说明优势

优势:

*finger = 20;

C艹 指针和const的关系和注意事项(非常有意思)的更多相关文章

  1. c/c++ 函数、常量、指针和数组的关系梳理

    压力才有动力,15年中旬就要准备实习,学习复习学习复习学习复习学习复习……无限循环中,好记性不如烂笔头……从数组开始,为主干. c 的array由一系列的类型相同的元素构成,数组声明包括数组元素个数和 ...

  2. C++中的指针与const

    刚开始接触C++时,指针和const之间的关系有点混乱,现在总结如下: 一.指向const变量的指针 #include<iostream.h> void main() { const in ...

  3. Java中final与C++中const的关系

    Java中的final有三种主要用法: (1)修饰变量: final变量是不可改变的,但它的值可以在运行时刻初始化,也可以在编译时刻初始化,甚至可以放在构造函数中初始化,而不必在声明的时候初始化,所以 ...

  4. 指向const的指针和const指针

    1.指向const的指针:const int *p 或 int const *p 解释:p是一个指针,指向const int类型的常量:指针指向的内容为常量,因此不能改变*p的值,但指针p可以改变,指 ...

  5. C++ Prime:指针和const

    与引用一样,也可以令指针指向常量或非常量,类似于常量引用,指向常量的指针不能用于改变其所指对象的值.要想存放常量对象的地址,只能使用指向常量的指针: const double pi = 3.14; / ...

  6. 指针和Const限定符

    指针和Const限定符 1.指向const对象的指针 如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针具有const特性. const d ...

  7. 函数指针玩得不熟,就不要自称为C语言高手(函数指针是解耦对象关系的最佳利器,还有signal)

    记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手.当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法.后 ...

  8. C++指针与const

    在C++中,const修饰符一般用于修饰常量.常量在定义的时候必须初始化,而且值一旦定义之后就不能修改,这样就能保证常量的值在程序运行过程中不会发生变换. 1.指向const对象的指针 指向const ...

  9. void指针和const指针

    void指针:主要是便于传递不同类型的参数 const指针: const char *p :const 在* 的左边表示指向一个常量指针:表示指向的内容不可变(*p不能变,p可以改变) int a = ...

随机推荐

  1. UIView的alpha、hidden和opaque属性之间的关系和区别

    转自:http://blog.csdn.net/wzzvictory/article/details/10076323 作者:wangzz 原文地址:http://blog.csdn.net/wzzv ...

  2. PxCook(像素大厨)

    PxCook(像素大厨)是一款切图设计工具软件.自2.0.0版本开始,支持PSD文件的文字,颜色,距离自动智能识别. 优点在于将标注.切图这两项设计完稿后集成在一个软件内完成,支持Windows和Ma ...

  3. window函数 resetAccumulator

    /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreem ...

  4. Flink安装、高可用性

    Flink JobManager HA模式部署(基于Standalone) SCP 命令 SSH免密码登录,搭建Flink standalone集群 https://blog.csdn.net/jie ...

  5. latex基本语法

    一直想着学会latex,但是自学起来太麻烦,总是出现各种不理解的错误,也没那么多时间钻研,就学了忘,忘了再学,这里就先摘录下它的基本命令吧.学好了是一件利器!(虽然不常用,但要尽量学会) LaTex基 ...

  6. package.json中配置浏览器

    "browserlist":[ ">=1%", "last 2 versions" ],

  7. stm32keilIDE遇到的bug

    最进项目中遇到keil中使用sscanf时,采取类正则表达 %*[^/]/%[^@]时不能正确得到的结果,同样的代码在gcc中运行通过.然后又遇到stm32 keil编译器printf带多个参数就卡死 ...

  8. iOS中大文件下载(单线程下载)

    主要是需要注意,在客服端发请求给服务器的时候,在请求头里是可以设置服务器返回的数据从哪开始,到哪结束的. 当服务器响应客户端时,是可以拿到服务器返回数据具体类型以及大小的 思路: 在接收到服务器响应时 ...

  9. PHP 常见header 状态

    转载:http://blog.csdn.net/mothz/article/details/6029810 <?php //200 正常状态 header('HTTP/1.1 200 OK'); ...

  10. app测试初窥

    要用到的两个神器:abd&drozer adb介绍 adb的全称为Android Debug Bridge,就是起到调试桥的作用,作为一名开发者倒是常用到这个工具.借助adb工具,我们可以管理 ...