问题1:const int a ; 和  int  const  a ;的区别

定义一个变量:

类型描述符 + 变量名

类型描述符包括类型修饰符数据类型

类型修饰符有:short  long  unsigned  signed  static  auto  extern  register

数据类型有:int  char  float

(1)类型描述符中如果有多个关键字,他们出现的位置不影响他对变量的限制。

static  int  short  i;和 int  static  short  i;完全一样

const  int  a 和  int const a 完全一样。

问题2:const int *a ; 和  int  *const  a ;int  const*  const a 的区别

       int  *a[] //因为[]的优先级高于*,因此是一个数组,每个成员类型为指针,指向int

       int  (*a)[10]//一个指针,指向类型为一个数组

(2)指针的判断从右向左

const  int*a ;//a是变量名,*表示他是一个指针(类型已经确定,指针类型),余下的是指向的数据的类型。

//因此,a是一个指向const int的指针,即指向的数据不可修改。(a是一个指针,指向的数据类型为const int

//a可修改即a可以指向其他变量,但是a当前所指向的数据不能被修改。

int  *const a;//*const 一起来修饰a,即const修饰 a为只读,*表示a是一个指针,因此这是一个只读的指针指针指向的数据类型为int类型

//a不可修改即a只能指向当前所指向的变量,但是指向的变量本身的值是可以修改的。

int const * const a;//*表示指针,因此指针不可修改,int const 是指针指向的类型,仍然是const。

//  a只能指向该变量,切该变量的值也不可修改或变化。

const 全面理解的更多相关文章

  1. 关于var和ES6中的let,const的理解

    var的作用就不多说了,下面说说var的缺点: 1.var可以重复声明 var a = 1; var a = 5; console.log(a); //5 不会报错 在像这些这些严谨的语言来说,一般是 ...

  2. const的理解、const指针、指向const的指针

    1.const 的理解 const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量.也就是说经过const 修饰的 ...

  3. static/extern&const个人理解

    //const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p) static NSString *const keyA = @"keyA"; static NSString ...

  4. C语言-const再理解(转)

    有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定.例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小.为了满足这一要求,可以使用const关键字对变量加以限定: co ...

  5. c++入门之const初步理解

    关于const,首先建立这样的一个认识:const并不是定义了一个常量,而是定义了在某种环境下只读的变量.下面我们来区分一些东西: ; const int*p = # *p = ; i ...

  6. C++中const关键字 理解

    const:符号常量  使用符号常量写出的代码更容易维护:指针是边读边移动,而不是边写边移动,许多函数参数是只读不写的. const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替 ...

  7. of 循环 改变 对象值 对const的理解 对象的字面量 计算属性

    const arr = [{a:23,b:34},{a:123,b:134}]console.log(arr)for (let v of arr){console.log(v)const old = ...

  8. (转)ES6系列——let和const深入理解

    原文:https://juejin.im/post/59e6a86d518825422c0cbb6f https://www.cnblogs.com/slly/p/9234797.html-----l ...

  9. 三. var let const的理解 以及 立即执行函数中的使用 以及 for循环中的例子

    一. 立即执行函数 windows中有个name属性,name='' '' var 如果我们用var name 去声明,那就会改变windows中name的值(因为我们不是在函数作用域中声明的,所以会 ...

随机推荐

  1. 转载:官方Caffe-windows 配置与示例运行

    转载来自:http://blog.csdn.net/guoyk1990/article/details/52909864 本文主要介绍官方给出的caffe-windows的配置及如何训练mnist数据 ...

  2. ansible常用模块即用法

    Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  模块名  又可以查看该模块有哪些参数可以使用. 下面 ...

  3. 正则表达式——WPF输入控件TextBox 限定输入特定字符

    概念: 正则表达式是对字符串操作的一种逻辑公式, 就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字符串的一种过滤逻辑. 目的: 给定一个正 ...

  4. JVM jstack 详解

    https://blog.csdn.net/zxp_cpinfo/article/details/54971115 输出到文件 >jstack -l PID >> /root/123 ...

  5. Jsoup解析网页源码时常用的Element(s)类

    Jsoup解析网页源码时常用的Element(s)类 一.简介 该类是Node的直接子类,同样实现了可克隆接口.类声明:public class Element extends Node 它表示由一个 ...

  6. tp5增删改查

    tp5框架增删改查,相对于以前的源生代码而言,非常简单,主要是为了熟练的应用框架,下面的代码主要是tp5框架的增删改查,让我们的更好 掌握框架. <?php namespace app\inde ...

  7. APP-4-百度地图定位

    APP-3-百度地图应用 需要根据上一步完成百度地图应用的测试,本文介绍Hbuilder通过MUI框架完成百度地图的定位. 1.代码部分 <!DOCTYPE html> <html& ...

  8. 01_hello world

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 【BUG记录】记一次游戏越来越卡的BUG

    U3D的MOBA项目,测试过程中,10分钟以后,游戏帧率开始缓慢下降,约3-5分钟后,由60帧下降到小于10帧,编辑器模式. 打开profiler,看到CPU占用非常高,每帧都有24K的GC, 时间占 ...

  10. python类和对象的底层实现

    按照python中"一切皆对象的原理",所有创建的对象,都是一个已知存在的class实例化的结果;那么class又是被哪个"类"实例化的呢?先看下面的一段代码 ...