当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C++中的const的用法

C++中的const的用法

2018年03月16日  | 移动技术网IT编程  | 我要评论

黄安炀,要润蓝正龙,哈工大考研论坛

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修饰的常量编译期间,就已经确定下来了。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网