const修饰符 const与指针

原创 2015年07月09日 13:58:39

    /*

        记忆技巧

            const  * 的位置

            如果 const  * 左侧 表示指针变量指向变量的值不能改变,但是指向可以改变

     

            如果 const  * 右侧 表示指针变量指向变量的值可以改变,但是指向不能改变

     

            如果 const 出现在 * 两侧 表示指针变量指向变量的值和指向都不能改变

     */


/*

    const 

        是一个类型修饰符

        使用const修饰变量则可以让变量的值不能改变

        常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

 

    (1)   const int Max=100; int Array[Max];

 

    (2) 便于进行类型检查,如果被改变编译器会报错

 

    (3) 可以让保护的值 免于被修改

 

    (4) 可以节省空间  提高效率

     ...

 

    const的使用

        1) 修饰变量

            int a = 10

 

    

        2) 修饰指针变量

 

        3) 修饰数组

 */

void demo2(){

    int a= 5;

    int b=10;

    

    //此处的const的作用是指针变量p的指向可以改变,但是指向的变量的值不能改变的

    

    //1const修饰的指针变量指向可变,指向的变量的值不可变

    const int *p = &a; //p初始化

    p = &b;  //重新修改了p的指向

    // *P = 1000;  这样是错误的

    

    int const *p1 = &a;

    p1 = p;

    // *p1=100; 这样是错误的

    

    printf("a=%d\n",a);

    

    //2const修饰的指针变量,指针变量指向的变量值可以变,指向不能变

    int  * const p2 = &a;

    *p2 = 2000; //值可以改变

    // p2 = &b;  这样是错误的 p2的指向不能变

    

    //3const修饰的指针变量的指向和值,都不能改变

    const int * const p3=&a;

    // p3 = &b;  //指向不能变

    // *p3 = 100;//指向的变量的值也不能变

    

    


}

C/C++ const 修饰符的作用

一.基本作用 1 const与define功能相似,具有定义常量功能。 const定义的常量具有数据类型,编译器会对数据类型安全进行检查,而宏定义则不会。 2可以保护值和指针不会被修改,提升程序的健壮...
  • chenyixin121738
  • chenyixin121738
  • 2016年09月23日 21:13
  • 489

C语言的那些小秘密之const修饰符

或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌...
  • bigloomy
  • bigloomy
  • 2011年07月09日 22:13
  • 12947

函数名前后加const修饰符的区别

1) 函数名前加const const int Func() {} 含义:返回值不可修改 2) 函数名后加const int Func const () {} 含义:const修饰的是类函数隐藏的第一...
  • alan00000
  • alan00000
  • 2016年01月20日 11:26
  • 610

C++ - const常量与指针和引用之间的关系

const常量1、const常量必须在定义的时候初始化,且不能修改。 2、const常量的默认类型为int类型。 3、#define是一个预处理器编译指令。该编译指令告诉预处理器,在程序中来查找并...
  • ko_tin
  • ko_tin
  • 2016年11月15日 23:36
  • 683

C++ 之 const 修饰符用法 详解!

•const:常量限定修饰符,它把一个对象转换为常量(constant)。const对象必须初始化而且是在定义的同时。初始化后的const对象(或指针)是不能修改的。 例1: int ...
  • gaotong2055
  • gaotong2055
  • 2012年11月02日 00:07
  • 3925

C语言中关于const与指针结合的理解

C语言中const的可变与不可变的关系总结为:只有被const直接修饰的变量最终指向的内容不可变(忽略变量类型修饰符,即int, long等)。...
  • u011408809
  • u011408809
  • 2016年07月05日 19:17
  • 1616

const指针 与指向const的指针的区别

const 指针与指向const的指针 当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白...
  • z1026544682
  • z1026544682
  • 2016年08月09日 09:43
  • 1241

const修饰指针的用法:常量指针和指针常量

const通常用来修饰变量不能够更改值,多用来保护变量或参数。 const int b = 100; //b = 0;错误 当const修饰指针时,由于const的位置不同,它...
  • oguro
  • oguro
  • 2016年09月28日 21:49
  • 2226

C语言const关键字修饰指针

const int *p; // p 可变,p 指向的对象不可变 int const *p; // p 可变,p 指向的对象不可变 int *const p; // p 不可变,p 指向的对象可变 c...
  • acs713
  • acs713
  • 2014年10月11日 10:23
  • 800

iOS const和static详解

#define ANIMATION_DURATION 0.3;        上述的预处理指令会把源代码中的 ANIMATION_DURATION 字符串替换成0.3, 这确实可以实现,但是这样定义...
  • mazegong
  • mazegong
  • 2016年04月22日 12:03
  • 750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:const修饰符 const与指针
举报原因:
原因补充:

(最多只允许输入30个字)