首页 > 代码库 > C++ const 限定符
C++ const 限定符
#include<stdlib.h> #include<iostream> int MAX(const int a, const int b); /* * const限定符: * 1. 定义:限定一个变量不允许被改变,产生静态作用 * 2. 分类: * (1) 顶层const:限定变量本身不可改变 * 例: const int number; * int *const pointer; * * (2) 底层const:限定变量所指向的对象不可改变,所有的引用都是底层const * 例: const int *pointer; * const int "ation; * 3. 用法: * (1) 定义常量 * * (2) 保护被修饰的东西 * * (3) 很方便的进行参数的调整和修改 * * (4) 为函数重载提供了一个参考 (***) * * (5) 节省空间,避免不必要的内存分配 * const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝 * * (6) 提高效率 * 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高 */ int main() { /* * 1. 定义:限定一个变量不允许被改变,产生静态作用 * 2. 分类: * (1) 顶层const:限定变量本身不可改变 * (2) 底层const:限定变量所指向的对象不可改变,所有的引用都是底层const */ const int num_1 = 10; //num_1 = 20; //错误:num_first 被const 修饰,不可改变 const int *num_pointer_1 = &num_1; num_pointer_1 += 8; //正确:底层const ,限定指针所指的变量不可变 std::cout << num_pointer_1 << *num_pointer_1 << std::endl; const int &num_reference = num_1; //num_reference = 20; //错误:使用const 修饰引用变量时,都是底层const std::cout << std::endl; std::cout << std::endl; /* * 3.用法: * (2) 便于进行类型检查(与宏进行比较) */ int num_3_1 = 12; int num_3_2 = 32; std::cout << "MAX(num_3_1, num_3_2) = " << MAX(num_3_1, num_3_2) << std::endl; std::cout << "MAX(NUM_DE_1, NUM_DE_1) = " << MAX(NUM_DE_1, NUM_DE_1) << std::endl; } int MAX(const int a, const int b) { return a > b ? a : b; }
C++ const 限定符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。