面试题目--const

目录

1、定义及初始化

2、const型变量与符号常量的区别

3、const型指针

1)指向常量的指针

2)指针常量

3)指向常量的指针常量


1、定义及初始化

  • const 数据类型 变量名 = 常量;数据类型 const 变量名 = 常量;
  • const型变量是特殊的变量,程序运行过程中其值不可以改变。
  • 在定义const型变量时必须初始化。
const int MaxLine = 1000;
float const PI = 3.14;

2、const型变量与符号常量的区别

  • 符号常量由 预编译器 处理,const型变量由 编译器处理。
  • 在编译或运行时符号常量已经不存在了(预编译时完成论文替换),而const型变量依然存在。
  • 符号常量的作用域从定义位置开始,到源文件结束;而const型变量的作用域与一般变量一样。

3、const型指针

1)指向常量的指针

  • const 数据类型 * 指针变量名;
  • 既可以指向常量也可以指向变量,但不能通过它间接修改其指向的变量或常量的值
  • 仅仅不允许 *p = ...
const int *p;
const int a = 15; // a 是个const型数据类型
int b = 1;

p = &a;
p = &b;


*p = 18; // 错误,不能通过p间接给它指向的变量b赋值。

b = *p;

2)指针常量

  • 数据类型 * const 指针变量名
  • 指针本身是常量,必须在定义时初始化,不允许被重新赋值
  • 即不允许  p = ...
int a, b;
int * const p = &a;
*p = 15;
b = *p;

p = &b; // 错误,不可以给指针p重新赋值

3)指向常量的指针常量

  • const 数据类型 * const 指针变量名
  • *p = ... 和 p = ... 都是非法的
int a = 1, b = 2;
const int * const p = &a;

*p = 18; // 错误
p = &b;  // 错误

b = *p;

a = 8;

定义const类型指针的主要目的是提高程序的安全性。

扫描二维码关注公众号,回复: 2906415 查看本文章

猜你喜欢

转载自blog.csdn.net/Doutd_y/article/details/81867157