首页 > 编程语言 >c++const限定符

c++const限定符

时间:2023-02-05 14:31:54浏览次数:39  
标签:const 常量 int c++ 对象 extern 限定符 指针

希望定义一种变量,他的值不能被改变,使用const限定符,定义const对象时必须初始化。

const int buf = 1024;

const对象只在文件内有效。如果有多个文件需要访问某个const对象,需要在每个文件中都定义一次const对象,这样在多个文件中出现了同名的const变量。某些时候它的初始值不是一个常量表达式,但又必要在多个文件中共享,需要使用extern。
f.h

extern const int buf;
extern const int buf = fcn();

声明需要使用extern,定义和初始化处也需要extern。

把引用绑定到const对象上称为对常量的引用。

const int ci = 1024;
const int &r1 = ci;

引用类型必须与其所引用对象的类型一致,但有个例外。
在初始化常量引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用的类型即可。

int i = 1;
const int &r1 = i;
const int &r2 = 1;

但是不能通过r1来修改i的值。

指针也有指向常量的指针

const int pi = 1;
const int *cp = π

允许修改cp的值,但是不能通过cp来修改pi的值。·
常量指针定义时必须初始化。

int i = 1;
int const p = &i;


放到const前面就是常量指针,指针p只能指向i,不能再指向其他对象,但是可以修改i的值

const int *const pip = &i;

pip既不能指向其他对象,也不能修改i的值。

标签:const,常量,int,c++,对象,extern,限定符,指针
From: https://blog.51cto.com/u_3764469/6038276

相关文章

  • C++ 函数重载:女友说的话到底是什么意思?
    一、前言C语言小朋友,最近谈了个女朋友,但是他很苦恼。因为他经常不能理解自己女朋友说话的意思。小C第一次和女友约会时,自己先到了对方却还没出门,电话询问,女友表示“你给我......
  • C++学生信息管理系统[2023-02-05]
    C++学生信息管理系统[2023-02-05]25、学生信息管理系统设计要求实现如下功能:1.建立学生信息数据,包括学号、姓名、性别、三科成绩、出生时间、年龄(由出生时间计算得到)......
  • C/C++图书管理系统[2023-02-05]
    C/C++图书管理系统[2023-02-05]选题二十三:图书管理系统【问题描述】设计一个计算机管理系统完成图书管理基本业务。 【任务要求】(1)每种书的登记内容包括书号、书名、......
  • C/C++航班信息的查询系统[2023-02-05]
    C/C++航班信息的查询系统[2023-02-05]选题十七:航班信息的查询系统[问题描述]该设计要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以......
  • C++基础编程题
     一、第一种类型题,普遍是简单运算计算球的体积V=4/3πr^3,输入球的半径r,求出体积保留3位小数#include<bits/stdc++.h>usingnamespacestd;intmain(){double......
  • C/C++内存对齐原则
    C/C++内存对齐what&&why当用户自定义类型时(struct或class),编译器会自动计算该类型占用的字节数。C/C++为什么要内存对齐?我道行太浅,摘抄了网上的一个解释。为了方......
  • 解决VS2019编译Qt报错:C3615 constexpr 函数“qCountLeadingZeroBits”不能生成常量表
    这个是Qt的BUG,要解决编译报错的问题,需要修改Qt安装目录下的一个文件:Qt\Qt5.9.5\5.9.5\msvc2015\include\QtCore\qalgorithms.h建议修改之前先保存一个副本,另外要根据编译......
  • Effective Modern C++ 第六章 lambda 表达式
    lambda能做到的,手写也能做到,但是lambda实在是太方便了,以至于对C++开发产生了颠覆性的影响:常用场景STL_if算法族的谓词智能指针的自定义析构器线程API的条件......
  • 【C++ 泛型编程01:模板】函数模板与类模板
    【模板】除了OOP外,C++另一种编程思想称为泛型编程,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板函数模板函数模板作用建立一个通用函数,其函数......
  • C++函数总结
    1、fabs返回浮点数的绝对值,abs返回整数绝对值2、运算符重载之后排序比写一个排序函数排序要快structnode{intx,y,z;booloperator<(constnode&p)const{retur......