C风格数组和std::array有什么区别

news2024/11/27 14:50:38

2023年11月6日,周一下午


C风格数组在 C/C++ 中没有值语义。当将内置数组作为函数参数或返回值时,实际传递的是指向数组首元素的指针,而不是整个数组的副本。这意味着对函数参数中的数组或返回值返回的数组进行修改会影响原始数组,因为它们共享相同的内存。

而当用std::array作为函数参数或返回值时,实际传递的是std::array的副本,这意味着它们各自使用不同的内存,就算修改也无法对彼此产生影响。也就是说,std::array有值语义。

#include <iostream>
#include <array>
using namespace std;

int main() {
	int c_array[] = {1, 2, 3, 4, 5};
	array<int, 5> std_array = {1, 2, 3, 4, 5};
	
	int *c_array_copy=c_array;
	c_array[0]=100;
	cout<<"c_array_copy[0]="<<c_array_copy[0]<<endl;
	//输出c_array_copy[0]=100
	
	array<int,5> std_array_copy=std_array;
	std_array[0]=100;
	cout<<"std_array_copy[0]="<<std_array_copy[0]<<endl;
	//输出std_array_copy[0]=1
	
	return 0;
}

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

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

相关文章

第七章:计算failure概率

文章目录 第七章Random testingSerial BlocksParallel Blocks如何创建 reliability 的 Block digramsmarkov model如何根据系统来构建马尔科夫计算模型software reliability growthbasic execution time model观察 failure操作概要(operational profiles)Time理解 reliablity …

开源不止,创新澎湃 | 2023开源产业生态大会六大专题抢“鲜”看!马上报名,锁定席位!

2023开源产业生态大会 作为上海市经济和信息化委员会、上海市科学技术协会指导的年度重点活动&#xff0c;2023开源产业生态大会即将于12月19日在上海开幕。大会将展示最前沿的开源创新项目&#xff0c;从金融科技、人工智能到智能汽车、智能制造、工业软件等一系列颠覆性应用…

Springboot自动配置那些事

Spring Boot中默认会扫描的启动类对应的子包下面的类&#xff0c;但是项目引入的其他包下面的类要加入到IOC中必须要有所说明&#xff0c;以下说到的自动配置就是干这个活的&#xff0c;springboot就会把配置中的类加载到ioc容器中。 &#xff08;1&#xff09;自动配置注册文…

Gradle version对应的 Gradle Plugin version

Gradle version对应的 Gradle Plugin version

如何成为前1%的程序员

目录 大量同质化的知识&#xff0c;会降低这些知识的含金量。 1、拥抱调试 2、质量胜于数量 3、读取代码 4、贡献 5、工具 如果你想成为前1%的程序员&#xff0c;你必须遵循1%的程序员做什么&#xff0c;了解其他99%的人不做什么。在现代&#xff0c;我们有各种学习平台…

伦敦金周末可以交易吗,黄金休市时间是那些?

伦敦金是国际性投资产品&#xff0c;主要交易中心有亚洲、欧洲和美洲&#xff0c;在时差的作用下&#xff0c;三大市场相互连接&#xff0c;形成了全天24小时几乎不间断的交易时间&#xff0c;也为炒金者们提供了充分的操作机会。即便如此&#xff0c;在一些特定的时间段内&…

C语言打印1/1+1/2+1/3.....+1/50结果

while语句&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i 1;double sum 0.0;while(i < 50){sum 1.0/i;i;}printf("sum %lf\n",sum);return 0; } for语句&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1#includ…

JTS: 15 Angle 角度计算

这里写目录标题 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 package pers.stu.algorithm;import org.locationtech.jts.algorithm.Angle; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; imp…

深入浅出继承

目录 一、继承的概念 二、继承的定义 2.1 继承格式 2.2 继承方式与访问限定符 2.3 继承方式和访问限定符 2.4 默认继承方式 三、基类与派生类对象赋值转换 四、继承中的作用域 六、派生类默认成员函数 七、继承与友元 八、继承与静态成员 一、继承的概念 继承&…

【c++】c++类的大小的计算和this指针

文章目录 1.类的大小如何计算&#xff1f;2.类内部的this指针3.this指针的特性 本文为作者关于c类学习过程中的小小总结 1.类的大小如何计算&#xff1f; c的类由成员变量和成员函数等组成&#xff0c;不同于c中的结构体只有成员变量&#xff0c;但类大小的计算方法和结构体的…

Redis中的Set类型

目录 set的相关命令 sadd smembers sismember scard spop smove srem 操作集合间的命令 sinter sinterstore sunion sunionstore sdiff sdiffstore 内部编码 set类型的应用场景 redis中的集合类型是保存多个字符串类型的元素的. 作为集合,有两个关键的特性:1…

CSS实现鼠标移至图片上显示遮罩层及文字效果

效果图&#xff1a; 1、将遮罩层html代码与图片放在一个div 我是放在 .proBK里。 <div class"proBK"><img src"../../assets/image/taskPro.png" class"proImg"><div class"imgText"><h5>用户在线发布任务&l…

C++ 动态规划。。。

#include <iostream> #include <algorithm> using namespace std; // 定义一个常量&#xff0c;表示无穷大 const int INF 1e9; int dp[1000 2];// 定义一个函数&#xff0c;计算数组中某个区间的和 int sum(int arr[], int start, int end) {int s 0;for (int …

【C/C++】什么是POD(Plain Old Data)类型

2023年11月6日&#xff0c;周一下午 目录 POD类型的定义标量类型POD类型的特点POD类型的例子整数类型&#xff1a;C 风格的结构体&#xff1a;数组&#xff1a;C 风格的字符串&#xff1a;std::array:使用 memcpy 对 POD 类型进行复制把POD类型存储到文件中&#xff0c;并从文…

干货丨Linux终端常见用法总结(收藏)

一、前言 熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率&#xff0c;笔者结合自身学习实践&#xff0c;总结以下终端用法供同行交流学习。 二、常见用法 1.快捷键 1.1.Alt. 在光标位置插入上一次执行命令的最后一个参数。 1.2.CtrlR 模糊搜索历…

jenkins gitlab CI/CD

jenkins的安装教程就不说了&#xff1a;Jenkins docker 一键发布 (一)_jenkins 一键发布-CSDN博客 最近打算从svn切换到gitlab&#xff0c;所以配置了一下jenkins的git 很简单&#xff0c;直接上图 1 选择 Git 2 录入gitlab的http地址&#xff08;由于我的git地址不是22端口&…

数据结构与算法之美代码:排序算法3

目录 算法原理桶排序 代码实现桶排序代码实现计数排序代码实现 算法原理 桶排序 核心思想是将要排序的数据分到几个有序的桶里&#xff0c;每个桶里的数据再单独进行排序。桶内排完序之后&#xff0c;再把每个桶里的数据按照顺序依次取出&#xff0c;组成的序列就是有序的了。…

【小白专用】PHP中的JSON转换操作指南 23.11.06

一、JSON的基础知识 1.1JSON数据格式 JSON数据格式是一组键值对的集合&#xff0c;通过逗号分隔。键值对由“键”和“值”组成&#xff0c;中间使用冒号分隔。JSON数据格式可以嵌套&#xff0c;而且可以使用数组 二、PHP中的JSON函数 JSON的操作需要使用编程语言进行处理&am…

接口测试及接口测试工具

首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把数据库共享给你&#xff0c;他只能给你…

【NI-DAQmx入门】外部采样时钟相关

1.时钟的作用 时钟在几乎所有测量系统中都起着至关重要的作用。通过硬件定时测量&#xff0c;时钟控制采样或更新的发生时间。与依赖软件计时测量相比&#xff0c;您可以选择硬件定时测量来实现采样或更新之间更一致的时间间隔。以数模转换器特性分析为例。该应用由三个基本部分…