11)const

Posted 小油菜123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11)const相关的知识,希望对你有一定的参考价值。

  1. const修饰一个  变量   为只读
  2. 1  const  int  a=1002 然后  我再 a=10;             这样写就是不行。

     

  3. 其实这个知识点主要考察    指针变量  指针指向的内存   是两个概念
     1 char buf[]="dhaslkfjhaskfd";
     2 
     3 
     4 const char *p=buf;
     5 char const *p1=buf;
     6 
     7 
     8 
     9 //上面两种是等价的
    10 
    11 char * const p2=buf;
    12 
    13 
    14 //还有一种情况是两个const
    15 const  char* const p2=buf;

    遇到这样的怎么看:

      1.   从左往右看,跳过类型,看修饰哪一个字符
      2.                如果是*,说明指针指向的内存不能变
      3.               如果是指针变量,说明指针的指向不能变,指针的值不能变
  4.   比如 
    const char *p=buf;   const修饰的是*  那么是那块内存不变,但是,指针的指向可以变,也就是p=&b,或者=&c,或者=&d都行
  5.       比如
     char * const p2=buf;   const修饰的是p2这个指针,那么p2这个指针中存的地址,不能变了,也就是p2=&b,永远存b的地址,不能是别的空间的地址
  6.  1 char buf []="dhsakdfjds";     
     2 char * const p2=buf;
     3   //下面的做法可以
     4 p2[1]=\'3\';
     5 
     6 
     7 //因为,这个改变的是内存块中存的内容,没有改变p2中存的地址
     8 
     9 //下面的不可以
    10 p2=”dsadasfd“;
    11 
    12 
    13 //因为那个改变了p2中存的地址

     

  7. 定义const变量  要尽量初始化,其实是一定要初始化。

  8.  

     
  9.  

         

以上是关于11)const的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?

20个简洁的 JS 代码片段

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置