c++ 基础知识 0001 const 知识

1. C++ const用法 尽可能使用const

2. C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

3.

3.1.const 修饰成员变量

#include<iostream>
using namespace std;
int main(){
int a1=3; ///non-const data
const int a2=a1; ///const data

int * a3 = &a1; ///non-const data,non-const pointer
const int * a4 = &a1; ///const data,non-const pointer
int * const a5 = &a1; ///non-const data,const pointer
int const * const a6 = &a1; ///const data,const pointer
const int * const a7 = &a1; ///const data,const pointer

return 0;
}

const修饰指针变量时:

  (1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。

  (2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。

  (3)两个const,*左右各一个,表示指针和指针所指数据都不能修改。

原文地址:https://www.cnblogs.com/rebot/p/10229885.html

时间: 2024-08-26 18:18:34

c++ 基础知识 0001 const 知识的相关文章

【C基础知识】const知识大全

[0]概述 const是constant 的缩写,是C语言的关键字之一,是一个类型修饰符(type specifier).const是恒定不变的意思也翻译为常量.常数等.很不幸,正是因为这一点,很多人都认为被 const 修饰的值是常量.这是不精确的,精确的说应该是只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容.或许当初这个关键字应该被替换为 readonly.那么这个关键字有什么用处和意义呢? 它限定变量为只读变量,即变量保存在只读静态存储区.编译时,如何尝试修改只读

[转帖]AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 https://segmentfault.com/a/1190000016231512 太长没看完.. javascriptvue-clicommonjswebpackast 阅读约 27 分钟 抽象语法树(AST),是一个非常基础而重要的知识点,但国内的文档却几乎一片空白. 本文将带大家从底层了解AST,并且通过发布一个小型前端工具,来带大家了解AST的强大功能 Javascript就像一台精妙运作的机器,我们可以

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解

AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 javascriptvue-clicommonjswebpackast 阅读约 27 分钟 抽象语法树(AST),是一个非常基础而重要的知识点,但国内的文档却几乎一片空白. 本文将带大家从底层了解AST,并且通过发布一个小型前端工具,来带大家了解AST的强大功能 Javascript就像一台精妙运作的机器,我们可以用它来完成一切天马行空的构思. 我们对javascript生态了如指掌,却常忽视javascript本身

斯坦福大学CS224d基础1:线性代数知识

斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter (补充: Chuong Do) 翻译:@MOLLY([email protected]) @OWEN 校正:@寒小阳([email protected]) @龙心尘([email protected]) 2015年9月30日 1基本概念和符号????2 1.1基本符号????2 2 矩阵乘法????3 2.1向量的乘积????3 2.2矩阵-向量的乘积????4 2.3矩阵-矩阵乘积????5 3 运算和性质????6 3

Linux基础增强与辅助知识梳理

Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统的由来 Linux为什么需要学习:有自己清晰的认识和坚持 开源可以修改源代码:使开源工具或是系统更加符合自己的需要,删除一下不需要的功能想做什么和能做什么Linux运行稳定,对网络有良好的支持,成本低,可以根据需要进行软件或是系统的修改裁剪,可以进行私人定制Linux:林妮科思,利尼克斯Linux系

全基因组重测序基础及高级分析知识汇总

全基因组重测序基础及高级分析知识汇总 oddxix 已关注 2018.09.20 17:04 字数 11355 阅读 212评论 0喜欢 6 转自:http://www.360doc.com/content/18/0208/11/19913717_728563847.shtml 全基因组重测序是通过对已有参考序列(Reference Sequence)的物种的不同个体进行基因组测序,并以此为基础进行个体或群体水平的遗传差异性分析.通过全基因组重测序,研究者可以找到大量的单核苷酸多态性位点(SNP

如何学习(4):利用旧知识理解新知识

有这么一个笑话: 一天,数学家觉得自己已受够了数学,于是他跑到消防队去宣布他想当消防员. 消防队长说:"您看上去不错,可是我得先给您一个测试." 消防队长带数学家到消防队后院小巷,巷子里有一个货栈,一只消防栓和一卷软管.消防队长问:"假设货栈起火,您怎么办?" 数学家回答:"我把消防栓接到软管上, 打开水龙,把火浇灭."消防队长说:"完全正确!最后一个问题:假设您走进小巷,而货栈没有起火,您怎么办?"数学家疑惑地思索了半天,终

const基础知识、const在C++和C中的异同、const与#define宏定义的异同

1.const基础知识 (1)用const定义常量 const int a = 5;   //定义了一个int型常量a,其值为5 (注:在C++中将其存储在符号表中(key,value),并不分配内存空间,只有在取地址或者定义为全局变量在其他文件中使用时才分配内存空间) (2)const与指针 1 const int* p1 = &a; //p1是指向常量a的指针,a的值不能通过指针p1改变 2 3 int* const p2 =&b; //p2是只能指向b的指针,b的值可以通过p2改变

C++基础知识---static const成员变量的初始化

为了将常量的作用域限制于class内,你必须让让成为class的一个成员:而为确保此常量之多只有一份实体,你必须让让成为一个static成员: Class Gameplayer { Private: Staticconst int Number = 5;  //常量声明式 Intscores[Number];  //使用该常量 }: 然而你所看到的是Number的声明式而非定义式.通常C++要求你对你所使用的任何东西提供一个定义式,但如果他是个class专属常量又是static且为整数类型,则需