首页 > 编程语言 >C++数组

C++数组

时间:2023-04-09 18:44:07浏览次数:47  
标签:arr int 元素 数据类型 C++ 数组名 数组

数组

C++中的数组是一种特殊类型的变量,它可以存储一组具有相同数据类型的元素,这些元素在内存中是按照一定的顺序排列的。下面是C++数组的一些特点:

数组的元素类型必须相同。例如,一个int类型的数组中只能存储int类型的元素。

数组的大小是固定的。一旦数组被创建,它的大小就不能再改变了。

数组的元素是连续存储的。这意味着,数组中的元素在内存中是按照一定的顺序排列的,每个元素的地址与前一个元素的地址相差固定的大小。

数组的下标是从0开始的。这意味着,数组的第一个元素的下标是0,第二个元素的下标是1,以此类推。

数组的访问速度很快。由于数组的元素是连续存储的,因此可以通过下标快速访问数组中的任何一个元素。

需要注意的是,在使用数组时应该注意数组越界的问题,即访问不存在的数组元素。这可能会导致程序崩溃或产生不可预料的结果。

一维数组

一维数组名:查看内存大小(sizeof(arr)),查看首地址(arr or arr[0])

一维数组定义的三种方式:

  • 数据类型 数组名[数组长度];

    int arr[10];
    
  • 数据类型 数组名[数组长度] = { 值1, 值2 ...};

    int arr[3] = { 2, 5, 8};
    
  • 数据类型 数组名[] = { 值1, 值2 ...};

    int arr[] = {2, 4, 6, 8};
    

冒泡排序

#include <iostream>
using namespace std;



int main() {
	int arr[9] = {2,4,0,5,7,1,100,8,9};
	int temp;
	
	cout << "排序前:" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		cout << arr[i] << " ";
		
	}

	// 开始冒泡排序
	for (int i = 0; i < sizeof(arr)/ sizeof(arr[0]); i++)
	{
		for (int j = i + 1; j < sizeof(arr) / sizeof(arr[0]); j++) 
		{
			if (arr[i]>arr[j])
			{
				temp = arr[j];
				arr[j] = arr[i];
				arr[i] = temp;
			}
		}
	}
	cout << endl;


	cout << "排序后:" << endl;
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) 
	{
		cout << arr[i] << " ";
	}
	
	


	return 0;
}

result:

二维数组

二维数组名:查看二维数组所占内存空间(sizeof(arr)), 获取二维数组首地址(arr or arr[0] or arr[0][0] )

二维数组就是在一维数组上,多加了一个维度

二维数组定义的四种方式:

1、数据类型 数组名[行数][列数];

2、数据类型 数组名[行数][列数] = { {数据1, 数据2}, {数据3, 数据4} };

3、数据类型 数组名[行数][列数] = { 数据1, 数据2, 数据3, 数据4 };

4、数据类型 数组名[][列数] = { 数据1, 数据2, 数据3, 数据4 };

建议:以上4种方式,利用第二种更加直观,提高代码的可读性

标签:arr,int,元素,数据类型,C++,数组名,数组
From: https://www.cnblogs.com/code3/p/17300778.html

相关文章

  • 如何在Linux环境下配置C/C++环境
    root权限后,使用yum源安装yum-yinstallgccgcc-c++kernel-devel//安装gcc、c++编译器以及内核文件查看GCC版本,看是否安装成功gcc-v出现这个就是安装成功了编译&运行C文件为:gcc-o文件名(无后缀)文件名(有后缀)并回车gcc-otesttest.cC++文件为:g++-o文......
  • C++,OpenCV图形绘制与文字输出(7)
    绘线voidline(InputOutputArrayimg,Pointpt1,Pointpt2,constScalar&color,intthickness=1,intlineType=LINE_8,intshift=0);//线的样式enumLineTypes{FILLED=-1,LINE_4=4,//!<4-connectedlineLINE_8=8,//!<8-connec......
  • MordernC++之左值(引用)与右值(引用)
    左值与右值C++中左值与右值的概念是从C中继承而来,一种简单的定义是左值能够出现再表达式的左边或者右边,而右值只能出现在表达式的右边。inta=5; //a是左值,5是右值intb=a; //b是左值,a也是左值intc=a+b; //c是左值,a+b是右值另一种区分左值和右值的方法是:有......
  • C++函数高级
    目录一.函数的默认参数1.默认参数的性质 2.函数默认参数的注意事项二.函数的占位参数三.函数的重载  1.重载的性质和条件(1)修改参数的个数(2)修改参数的类型(3)修改参数的顺序2.函数重载的注意事项 (1)当引用&作为函数参数(2)不可以用函数的默认参数作为重载条件 一.函数的默认参数1.......
  • [省选联考 2023] 染色数组 题解
    题目描述给定一个长度为\(n\)的正整数数组\(A\),其中每个数都在\(1\)到\(m\)之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足:每个数\(A_{i}\)要么被染成红色,要么被染成绿色。红色的数从左到右依次严格递......
  • C++内存对齐
    0x1什么是内存对齐,为什么需要它?尽管内存是以字节为单位,但是大部分处理器并不是按字节块来存取内存的.它一般会以双字节,4字节,8字节,16字节甚至32字节为单位来存取内存,这些存取单位称为内存存取粒度。现在考虑4字节存取粒度的处理器取int类型变量(32位系统),该处理器只能从地址为4......
  • [省选联考 2023] 染色数组 题解
    题目描述给定一个长度为\(n\)的正整数数组\(A\),其中每个数都在\(1\)到\(m\)之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足:每个数\(A_{i}\)要么被染成红色,要么被染成绿色。红色的数从左到右依次严格递......
  • 数组的算法
    数值型数组特征值统计这里特征值涉及到:平均值,最大值,最小值,总和等求最大值:将数组第一个元素假设为最大值intmax=arr[0];再然后用写一个判断语句如果数组第一个元素小于当前比较的元素就把当前比较的元素赋值给maxif(max<arr[i]){max=arr[i]}求最小值:定义一个变量这个数大......
  • C++伪随机数
    直接上代码吧用的是vs2019#include<iostream>usingnamespacestd;intmain(){ //系统生成随机数//rand()%100生成0~99 srand(time(NULL));//随机数种子,不加这行下一行就是伪随机数 intrandom_num=rand()%100+1;//1-100; //cout<<random_nu......
  • C++ map注意事项
    std::map<int,std::string>map;判断key是否存在时不能使用:std::stringstr=map[9];  //这样不存在时会新增!!!需要这样判断:std::map<int,std::string>::interatoriter;iter=map.find(9);if(iter!=map.end())  //存在else//不存在......