C/C++中的const和const指针的基本用法

来源:互联网 发布:java 创建数组 编辑:程序博客网 时间:2024/05/16 02:08

1. const基本用法

C/C++ 中使用const 关键字来修饰常量,所有常类型的变量的值都是不可更改的,并且在定义的时候就必须被初始化:
const int a; // 错误,必须初始化const int a = 100;a = 200; // 错误,不能更改常量的值
const int a = 100int 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语言constC++中的const上面同样的代码在C++中不会改变a的值,会输出10,C++在创建const变量时,会把常量放到符号表中,使用指针给常量间接赋值是没用的。

查看原文:http://www.mqzzz.cn/programming-language/c_cpp_const_point.html