对extern,static,const的再认识

2023-10-30

const

  1. const修饰的值为常量,是不可改变的,在c++语言中是不可改变的,而在C语言中,我们可以通过指针去修改那一片地址的值
  2. const修饰的指针,表面指针指向或者指针的值是不可被修改的,我们可以通过通配符*的位置来判断,*在左说明修饰的值不可改变,*在右说明指针的指向不能改变
  3. const修饰函数的参数,表面传入的参数在函数内部不可改变
  4. const修饰类成员变量,该成员变量只能在初始化列表赋值,而不能在外面改变
  5. const修饰类成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”

    不能调用非const成员函数,因为任何非const成员函数会有修改成员变量的企图
    const的成员函数才能被一个const类对象调用。即const类对象只能调用const成员函数
    const关键字不能与static关键字同时使用,因为static关键字修饰静态成员函数,静态成员函数不含有this指针,即不能实例化,const成员函数必须具体到某一实例
    const修饰类对象
    对象的任何成员都不能被修改
    只能调用const成员函数
    const的返回值同样应该使用一个const去接收

static (对文件的隐藏)

  1. static函数修饰普通变量,会将它放入常量区,随着程序的消亡而消亡
  2. static修饰局部变量,他并不会随局部模块的消亡而消失,而实保留着常量区,当模块下一次被调用的时候,还保留原理的值
  3. static修饰全局变量,static修饰的全局变量只有当前文件可以用
  4. static修饰函数,函数只能在本文件可以用,所以我们有时候想去调用静态函数,可以通过写接口函数的方式去调用他

extern

他的方法和函数一样,因为函数默认是extern修饰的,总结他的用法就是

可以多次声明,但是只能定义一次

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对extern,static,const的再认识 的相关文章

  • 同一应用服务中的 Azure 函数是否在同一实例中运行

    我有一个场景 我的一个类有一个静态成员 我可以从函数应用程序设置其值 假设属于同一应用服务计划的另一个功能应用也使用同一个类 并且也设置 依赖静态成员的值 现在 如果两个功能应用程序从不同时运行 我们就没有问题了 另外 如果它们不在同一个实
  • CMake:将为 lib 构建的对象文件重用到另一个 lib 目标中

    我正在尝试将我的项目转移到CMake 同时对编译过程进行一些优化 这是交易 我有几个子目录 必须 每个子目录都编译成静态库 这有效 我想将每个子目录中的所有目标文件收集到另一个更大的 完整的静态库中 它看起来像这样 libBig a mad
  • 在node.js Express框架中设置两个不同的静态目录

    是否可以 我想设置两个不同的目录来提供静态文件 假设 public 和 mnt 您还可以通过指定附加 第一个 参数来设置将静态文件提供给 Web 的路径use 像这样 app use public express static dirnam
  • Msil 以动态类型发出静态数组

    我正在尝试使用 Reflection Emit 在 c 中 创建一个新类型 我想要创建的代码类似于 public class public static int A new int 1 2 3 我首先尝试定义一个字段 然后设置它的值 var
  • 当库静态链接时静态变量会发生什么

    假设我有图书馆 A 实现单例模式 它的实现中有一个静态变量 A 库被编译为静态库 现在 假设我的项目中有 B 另一个静态链接的静态库 A C 另一个静态链接的静态库 A D 一个顶级程序链接 B and C 最后 我的单例真的是单例 并且我
  • 在 C++/CLI 中创建时初始化静态字典

    今天我看到创建静态字典并初始化它的 C 代码 public static readonly Dictionary
  • 编译时在代码中替换Java静态最终值?

    在java中 假设我有以下内容 fileA java class A public static final int SIZE 100 然后在另一个文件中我使用这个值 fileB java import A class b Object t
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • Java:无法从同一包中的不同类访问静态变量

    这很奇怪 因为我有一个可以访问 Frame dimension getWidth 的 Character 类 及其伙伴 getHeight 但是当我想在 Map 类中使用它时 Eclipse 强调了它并且无法给我反馈 运行该程序最终会出现
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 从 BroadcastReceiver 获取方法来更新 UI

    我正在尝试根据变量的变化更新用户界面BroadcastReceiver 因此 我需要调用一个扩展类的方法 以获取我提到的变量 BroadcastReceiver in MainActivity取决于但我无法以任何方式获得真正的返回值 扩展的
  • PHP 中的静态类初始值设定项

    我有一个带有一些静态函数的辅助类 类中的所有函数都需要一个 重 初始化函数来运行一次 就好像它是一个构造函数 有实现这一目标的良好实践吗 我唯一想到的就是打电话init函数 如果它已经运行过一次 使用静态 initialized变种 问题是
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • 为什么要以静态的方式访问静态字段呢?

    public enum MyUnits MILLSECONDS 1 milliseconds SECONDS 2 seconds MINUTES 3 minutes HOURS 4 hours private MyUnits int qua
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 在 Android 中将应用程序上下文保存到静态变量是否安全?

    我知道在 Android 上使用静态变量是相当危险的 特别是当您将它们引用到活动时 但是 如果我有一个扩展 Application 的类 我们称此类为 App 引用此类的实例是否安全 如果是这样 任何其他类对应用程序上下文进行任何类型的引用
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v
  • C++中全局变量和静态成员变量动态初始化的实现

    我有一些关于执行C 中关于链接和可执行模块加载过程的变量初始化 我主要关心的是全局变量和静态成员变量的动态初始化 其中初始化过程涉及代码的执行 我正在寻找解决 Windows 和 Linux 问题的答案 我已经明白在静态初始化的情况下 编译
  • 如何实现创建新对象并返回对其引用的 C++ 方法

    我有一个具有以下方法的 C AuthenticatingProxy 类实例 此方法创建一个 Response 对象 然后使用状态更新该对象 然后返回 由于 Response 对象的内部结构 它无法被复制 即我不能简单地按值返回 const
  • Nginx 位置、别名、重写、根

    我正在通过 proxypass 提供 foo bar 服务 并希望继续这样做 但是 我想从 var www mystatic baz swf 等静态地提供 foo bar baz swf 服务 我希望我能做类似的事情 location fo

随机推荐

  • QT中ui文件生成关联的C++类

    在VS2008中给对话框资源添加关联的C 类时 可通过右键菜单 添加类 直接添加关联的C 类 但QT中不支持这样的操作 在QT中在创建界面ui时 可手动也可自动创建ui文件关联的C 类 分别如下所示 一 自动创建ui文件和对应的C 类 项目
  • C语言开发网站

    在正式开发之前 先了解一下网站的原理 请求 处理 响应 在浏览器的network中可以看到浏览器和服务器的交互过程 请求一个网站的本质就是咱们的浏览器和服务器交互的一个过程 比如说咱们请求www baidu com 就是咱们的浏览器向服务器
  • lede 插件_路由器帮你签到!「LEDE/Openwrt系统“签到狗”插件使用教程」

    每日签到 废话不多说 用了才知道 图标 支持的站点 baidu 百度贴吧 百度文库v2ex V2EXhostloc hostloc comacfun A站bilibili B站163music 网易云音乐PCmiui 小米论坛52pojie
  • getline函数

    在我的印象中 getline函数经常出现在自己的视野里 模糊地记得它经常用来读取字符串 但是又对它的参数不是很了解 今天又用到了getline函数 现在来细细地总结一下 首先要明白设计getline函数的目的 其实很简单 就是从流中读取字符
  • 超强大JS表格:DataViewsJS 1.8.16.1407 Crack

    DataViewsJS完整的 JavaScript 数据呈现和数据网格平台 通过从各种不同的演示视图中进行选择 包括树 卡片 砖石 网格 时间线 甘特图 日历和网格 超越传统的表格显示 快速地 纯 JavaScript 针对速度进行了优化
  • ECMAScript 6规范总结(长文慎入)

    闲话 学习ES6的动机起于对其promise标准的好奇 它与jQuery源码中Deferred不同 而且在异步编程中加入了Generator 在后续ES7中更有Async 这勾起我强烈的兴趣了解ES6更多的内容 于是完整的学习了阮一峰老师的
  • Java Web实战开发基础:MVC模式

    Java Web的MVC模式 MVC是java web的基础 我写的java web实战开发专栏系列都是基于MVC 建议有需要的订阅我专栏的铁铁先提前看看这篇博文哦 简介 Java Web开发中 采用MVC Model View Contr
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 进程间同步(互斥量、信号量)

    进程间同步可以使用互斥量mutex 互斥锁 信号量和文件锁 进程间同步使用信号量 int sem init sem t sem int pshared unsigned int value 用于进程间同步此时第二个参数不能取0了 取非0值用
  • stm32中can通讯的基本概念

    身为一个电控组的成员 我们当接触一个新的概念的时候首先应该去了解他的硬件 其次再者是软件 而且在学习新的应用时 也应该清楚什么我们要着重了解 什么我们要清楚即可 以can为例 我们先从他的硬件说起 Can硬件一共有两种接法 但核心还是两根信
  • Tomcat服务器的HTTP首部长度最大值

    今天编写Cas5 OAuth2 0 实现password 授权功能时 Tomcat 提示如下信息 HTTP 头部长度超出默认长度 解决方法 配置文件路径 TOMCAT HOME conf server xml 修改如下 添加头部最大值 81
  • 1一个HTTP请求的网络脉络,解压爽文

    一个HTTP请求的网络脉络 解压爽文 1写前的话 2 网络请求概览 2 1 http 的产生 2 1 1什么叫做协议 2 1 2http定义 2 1 3 http诞生历史 怎么来的 时间迭代史 2 1 4浏览器的小插曲 2 2tcp ip协
  • 开发者入门必读:最值得看的十大机器学习公开课

    转 http www leiphone com news 201701 0milWCyQO4ZbBvuW html 导语 入门机器学习不知道从哪着手 看这篇就够了 在当下的机器学习热潮 人才匮乏十分显著 截至目前 国内开设人工智能 AI 专
  • R语言时间序列之ARMA、ARIMA模型

    基本理论知识 ARMA模型称为自回归移动平均模型 是时间序列里常用的模型之一 ARMA模型是对不含季节变动的平稳序列进行建模 它将序列值表示为过去值和过去扰动项的加权和 模型形式如下 yt c a1yt 1 a2yt 2 apyt p t
  • 【图像识别】基于卷积神经网络CNN和支持向量机SVM实现花卉图像识别附matlab代码...

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 针对传统图像分类算法在泛化能力等方面存在的不足 结合当前的深度学习算法 提出一种基于
  • 显示器尺寸对照表_怎样知道自己的电脑显示器是多少寸的

    展开全部 直接测量显示器e5a48de588b662616964757a686964616f31333366303731对角线即可 不包括边框 测量结果除以2 45得数就是显示器尺寸 显示器 display 通常也被称为监视器 显示器是属于
  • 20个基于DPDK开源项目,建议收藏

    一 ANS DPDK 原生加速网络堆栈 ANS 加速网络堆栈 是DPDK本地TCP IP堆栈 也参考FreeBSD实现 ANS提供了一个与Intel DPDK一起使用的用户空间TCP IP堆栈 文件结构 ans 加速网络堆栈过程 librt
  • FireFly菜鸟学习二(cocos2dx客户端和服务器通信实现)

    1 FireFly服务器 FireFly自定义通信协议 coding utf8 from firefly server globalobject import netserviceHandle from firefly server glo
  • kali安装SRC挖掘利器—ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统安装教程

    目录 先参考kali安装Docker 卸载旧版本 配置Docker以在启动时启动 Linux的安装后步骤 Docker 启动 文章参考地址 https www 77169 net download 267781 html 本地搭建 Kali
  • 对extern,static,const的再认识

    const const修饰的值为常量 是不可改变的 在c 语言中是不可改变的 而在C语言中 我们可以通过指针去修改那一片地址的值 const修饰的指针 表面指针指向或者指针的值是不可被修改的 我们可以通过通配符 的位置来判断 在左说明修饰的