C++中的const的用法

2018-06-17 21:01:45来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

1 const int a;
2 int const b; //一样
3 // 
4 const int *c;  //const修饰的是指针所指向的内存空间d的数据,不能被修改
5 int * const d; /*d 常指针(指针变量不能被修改(d不能乱指),但是它所指向内存空间可以被修改)*/
6 const int * const e ;//指针和它所指向的内存空间,均不能被修改

C语言中的const并不是真正意义上的const,C语言中const变量是只读变量,有自己的存储空间,在C语言中,仍然可以通过间接赋值修改a的值。

void main()
{
    //好像 a 是一个常量
    const int a = 10;
    //a = 11;
    int *p = NULL;
    p = (int *)&a;

    *p = 20;  //间接赋值 

    printf("a:%d \n", a);    
    printf("*p:%d \n", *p);
    system("pause");
}

实际上,在C++语言中,const建立的是一个符号表。用指针间接赋值的时候,会重新开辟一块内存空间,间接修改a的值只是修改了,新开辟的内存空间的值,和原来的符号表中的a的值没有任何关系。

所以C++中的const才是真正意义上的const

C++中的const修饰的,是一个真正的常量,而不是C中变量(只读)。在const修饰的常量编译期间,就已经确定下来了。

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:浅谈ST表

下一篇:1003.我要通过(PAT)