您的位置:首页 > 编程语言 > C语言/C++

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



C++中的const

上面同样的代码在C++中不会改变a的值,会输出10,C++在创建const变量时,会把常量放到符号表中,使用指针给常量间接赋值是没用的。



查看原文:http://www.mqzzz.cn/programming-language/c_cpp_const_point.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: