【C/C++】 const

news2024/9/24 1:25:36

1、C语言的const

1、在C语言中 const修饰的局部变量保存在栈区

虽然不能通过const修饰的变量去修改栈区内容,但是可以 通过地址去修改

2、const修饰的全局变量是保存在常量区,不能通过变量名去修改.也不能通过地址去修改

3 、const修饰的全局变量,如果其他文件想使用,直接extern声明外部可用即可

2、C++ 中的const

1 const修饰的局部变量赋值常量时,局部变量保存在符号表中,修改不了,是一个常量

2 const修饰的全局变量保存在常量区,不能被修改

3 const修饰的全局变量默认是内部链接属性,加上extern修饰变成外部链接属性

test.cpp
main.cpp

3、 c/c++中的const异同

相同的点:

c和c++中的const修饰的全局变量都是保存在常量区,不能被修改

不同的点:

1、c语言中const修饰的局部变量赋值为常量时,局部变量保存在栈区,可以被指针修
2、c++中,const修饰的局部变量赋值为常量时,局部变量保存符号表中,不能被修改
3、c语言中const修饰的全局变量默认是外部链接属性
4、c++语言中const修饰的全局变量默认是内部链接属性

c++中const修饰的变量,分配内存情况

1、const修饰的全局变量在常量区分配了内存
2、对const修饰的局部变量赋值为常量时,对其取地址,会在栈区分配临时的内存空间
3、const修饰的局部变量赋值为变量时,局部变量保存在栈区
4、const修饰的局部变量时一个自定义变量,也是在栈区分配内存

3 、尽量以const替换define

有两点原因:
1. const修饰的全局变量或const修饰的局部变量赋值为常量,是有类型的,而define的
宏没有 类型
2. const修饰的全局变量或const修饰的局部变量赋值为常量有作用域的,而define的
宏没有作用域
 #include <iostream>
 using namespace std;
 namespace A
 {
 const int max = 1024;
 const short max1 = 1024;
 #define MAX 1024
 }
 // 宏没有作用域 宏没有类型(int)
 void fun(int a)
 {

 }
 void fun(short a)
 {


 }

 void test01()
 {
 cout << A::max << endl;
 cout << MAX << endl;
 fun(MAX);//void fun(int a)
 fun(A::max);//void fun(int a)

 fun(A::max1);//void fun(short a)
 }
 int main()
 {

 return 0;
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

空间精密定位与导航VR模拟培训软件突破了时空限制

随着科技的飞速发展&#xff0c;测绘遥感技术逐渐成为地理信息获取的重要手段。然而&#xff0c;传统的测绘展示方式存在着诸多局限性&#xff0c;无法充分展现出测绘数据的精细化和多元化&#xff0c;成为为解决这一难题的有效途径。 测绘工程专业作为时下就业率爆棚的专业之一…

01、python基础知识:

1、注释 多行注释 单行注释 2、 数据类型 3、标识符 关键字 常用的标识符&#xff1a; 常用关键字&#xff1a; 4、输入输出 4.1 格式化输出: 格式化符号 占位符&#xff1b; 5、运算符、 数据类型转化&#xff1a; 1、字符串&#xff1a; 1.1、格式&#xff1a; 单引号、…

css实现排行榜样式(vue组件)

先看效果图&#xff1a; <template><div class"lawyer-refund-wrap"><div class"content"><divv-for"(item, index) in dataList" :key"index":style"{width: calc(100% - ${(index 1) * 10}px)}"c…

VGG卷积神经网络实现Cifar10图片分类-Pytorch实战

前言 当涉足深度学习&#xff0c;选择合适的框架是至关重要的一步。PyTorch作为三大主流框架之一&#xff0c;以其简单易用的特点&#xff0c;成为初学者们的首选。相比其他框架&#xff0c;PyTorch更像是一门易学的编程语言&#xff0c;让我们专注于实现项目的功能&#xff0…

计算机毕业设计选题推荐-springboot 教材管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Android项目打包aar(kts)

目录 app build.gradle.kts AndroidManifests 按步骤生成 生成结果 双击查看内容 app build.gradle.kts plugins {id("com.android.application")id("org.jetbrains.kotlin.android")id("kotlin-parcelize")id("kotlin-kapt") …

推荐开源工具带带弟弟ocr_ddddocr_各种验证码都可以识别_滑动_点击_等等---验证码识别工作笔记001

这个很强大了,常见的各种验证码都可以识别,如果你项目上也有需要,比如需要实现系统的自动登录,这个时候就很有用了,这里仅仅给出方案,具体如何用,用的时候在做研究吧,好东西要记录,分享给需要的人.使用的时候 自己去查一下如何使用非常简单. 支持点击的验证码,支持数字验证码就…

基于SSM的生活缴费系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

spring boot+ vue位置信息大数据综合管理平台源码

spring boot vue位置信息大数据综合管理平台源码 UWB技术的人员定位系统源码 智慧工厂是产业升级的外在表现形式&#xff0c;利用物联网技术加强信息管理的新模式&#xff0c;人员定位管理通过物联网技术、位置信息大数据的综合处理应用&#xff0c;在智慧工厂人员管理方面具有…

nexus部署私库及上传和拉包处理

部署不在此赘述&#xff0c;部署好后地址为&#xff1a;http://ip:8081/nexus 默认账号和密码&#xff1a;用户名:admin 密码:admin123 nexus里可以配置3种类型的仓库&#xff0c;分别是proxy、hosted、group proxy是远程仓库的代理。比如说在nexus中配置了一个central reposi…

c++视觉处理---霍夫变换

霍夫直线变换的函数 HoughLines 是OpenCV库中用于执行霍夫直线变换的函数。霍夫直线变换用于检测图像中的直线。下面是该函数的基本用法&#xff1a; cv::HoughLines(image, lines, rho, theta, threshold);image: 输入的二值图像&#xff0c;通常是通过边缘检测算法生成的。…

众佰诚:抖音开通橱窗的要求和流程有什么

在当下的社交媒体环境中&#xff0c;抖音作为一款短视频分享平台&#xff0c;已经吸引了大量的用户和商家。其中&#xff0c;抖音橱窗的功能使商家能够以一种更直接和吸引人的方式展示和销售他们的产品。下面&#xff0c;我们将详细介绍一下抖音橱窗的开通要求和流程。 开通要求…

SCI论文高效写作:Citespace、vosviewer和R语言在文献调研与论文撰写中的应用

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

Unity中Shader不同灯光类型的支持与区分

文章目录 前言一、在开始之前做一些准备1、在上一篇文章的场景基础上&#xff0c;增加一个Unity默认的球体作为对照组2、创建一个点光源&#xff0c;用来看点光源的影响 对 Unity默认的Shader效果 和 我们实现的Shader效果 之间的不同 二、点光源的适配把上一篇文章中 ForwardB…

16基于otsuf方法的图像分割,程序已调通,可更换自己的图片进行分割,程序具有详细的代码注释,可轻松掌握。基于MATLAB平台,需要直接拍下。

基于otsuf方法的图像分割&#xff0c;程序已调通&#xff0c;可更换自己的图片进行分割&#xff0c;程序具有详细的代码注释&#xff0c;可轻松掌握。基于MATLAB平台&#xff0c;需要直接拍下。 16matlab图像处理图像分割 (xiaohongshu.com)

微宏科技基于 KubeSphere 的微服务架构实践

作者&#xff1a;尹珉&#xff0c;KubeSphere Ambassador、contributor&#xff0c;KubeSphere 社区用户委员会杭州站站长。 公司简介 杭州微宏科技有限公司于 2012 年成立&#xff0c;专注于业务流程管理和自动化(BPM&BPA)软件研发和解决方案供应商。创始团队毕业于浙江大…

three.js学习之vR展厅

目标 1、需要会的知识点three.js的场景&#xff0c;摄像机&#xff0c;渲染器&#xff0c;轨道控制器&#xff0c;坐标轴&#xff0c;场景适配&#xff0c;渲染循环创建立方缓冲几何体、纹理、3d物体 实现&#xff1a;创建立方几何体&#xff0c;纹理贴图镜面反向渲染&#xf…

空转旋转 seurat spatial rotate 图片 翻转 数据结构 对象 seurat的空转数据存储

1seurat 取子集操作 3. 对象操作 ① 通过结构图上的,$符号依次取 ② 两个中括号操作&#xff0c;pbmc[[ ]]。 教程中&#xff0c;pbmc[[percent.MT]]向meta.data添加 percent.MT 这一列。 pbmc[[]]&#xff0c;中括号取的是上面结构图中的二级数据名称以上两种方法的区别是&am…

《Unity Shader入门精要》笔记06

基础纹理 单张纹理纹理的属性Alpha SourceWrap ModeFilter Mode 凹凸映射高度纹理法线纹理实践在切线空间下计算在世界空间下计算 Unity中的法线纹理类型Create from Grayscale 渐变纹理遮罩纹理其他遮罩处理 单张纹理 我们通常会使用一张纹理来代替物体的漫反射颜色 Shader …

[SRT]1.协议简介

1.简介 ​ 安全可靠传输协议(Secure Reliable Transport)简称SRT&#xff0c;是一种基于UDT协议的开源互联网传输协议&#xff0c;Haivision和Wowza合作成立SRT联盟&#xff0c;管理和支持SRT协议开源应用的组织&#xff0c;这个组织致力于促进视频流解决方案的互通性&a…