C/C++中的const和const指针的基本用法
2017-11-02 23:15
232 查看
1. const基本用法
C/C++中使用
const关键字来修饰常量,所有常类型的变量的值都是不可更改的,并且在定义的时候就必须被初始化:
const int a; // 错误,必须初始化 const int a = 100; a = 200; // 错误,不能更改常量的值
const int a = 100和
int const a = 100这两种写法是一样的。
2.const和指针
const和
指针有三种组合方式:
第一种:常量指针
常量指针是一个常指针,指针的数值不能更改,指针可以更改指向。
int num = 100; int num2 = 200; const int * p = # *p = 200; // 错误,不能修改数值 p = &num2; // 能修改指向
第二种:指针常量
指针常量和常量指针相反,它可以修改数值,但是不能修改指向。
int num = 100, num2 = 200; int * const p = # p = &num2; //错误,不能修改指向 *p = 100; //能修改数值
第三种:指向常量的指针常量
它既不能修改数值,也不能修改地址。
int num = 100, num2 = 200; const int * const p = # p = &num2; // 不能修改地址 *p = 1000; // 不能修改数值
3. C语言中的const和C++中的const的区别
C语言中的const是冒牌货const int a = 10; int *p = (int *)&a; *p = 20; printf("%d\n", a); // 会输出20
![](https://wx1.sinaimg.cn/mw690/005wtJ8cly1fl44awsetcj30ea07cglu.jpg)
C++中的const
上面同样的代码在C++中不会改变a的值,会输出10,C++在创建const变量时,会把常量放到符号表中,使用指针给常量间接赋值是没用的。
![](https://wx2.sinaimg.cn/mw690/005wtJ8cly1fl44djlea0j30cb08fmx9.jpg)
查看原文:http://www.mqzzz.cn/programming-language/c_cpp_const_point.html
相关文章推荐
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- C++的常量const基本用法
- c++中const基本用法(常变量、常指针、常对象)
- C++关键字const基本用法
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- c++基础:新标准constexpr基本用法及其他注意点
- 关于C++中的const关键字的用法
- c++ map的基本用法
- C++:sort函数的基本用法
- c++中const 的用法
- C++中const用法总结
- C++中const用法总结
- c++ stl中map容器的基本用法