首页 > 编程语言 >C++基础 — 数组学习

C++基础 — 数组学习

时间:2024-08-23 11:27:39浏览次数:14  
标签:arr cout int C++ 学习 数组名 数组 main

目录

一、概述

二、一维数组

1.一维数组定义方式

2.一维数组数组名

二、二维数组

1.二维数组定义方式

2.二维数组数组名

一、概述

所谓数组,就是一个集合,里面存放了相同类型的数据元素。

  • 特点1:数组中的每个数据元素都是相同的数据类型;
  • 特点2:数组是由连续的内存位置组成的。

二、一维数组

1.一维数组定义方式

(1)数据类型  数组名[数组长度];

int main()
{
	int arr[5];

	//给数组中的元素进行赋值
	arr[0] = 10;
	arr[1] = 20;
	arr[2] = 30;
	arr[3] = 40;
	arr[4] = 50;

	//访问数组元素
	cout << arr[0] << endl;
	cout << arr[1] << endl;
	cout << arr[2] << endl;
	cout << arr[3] << endl;
	cout << arr[4] << endl;

	system("pause");
	return 0;
}

(2)数据类型 数组名[数组长度] = { 值1,值2 ... };

int main()
{
	int arr2[5] = { 10, 20, 30, 40, 50 };
	//如果在初始化数据时候,没有全部填写完,会用0来填补剩余数据

	//访问数组元素
	for (int i = 0; i < 5; i++)
	{
		cout << arr2[i] << endl;
	}

	system("pause");
	return 0;
}

(3)数据类型 数组名[] = { 值1,值2 ... };

int main()
{
	int arr3[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

	//访问数组元素
	for (int i = 0; i < 10; i++)
	{
		cout << arr3[i] << endl;
	}

	system("pause");
	return 0;
}

2.一维数组数组名

一维数组名称的用途:

(1)可以统计整个数组在内存中的长度

int main()
{
	int arr[5] = { 1, 2, 3, 4, 5 };

	cout << "整个数组长度为:" << sizeof(arr) << endl;
	cout << "数组中每个元素长度为:" << sizeof(arr[0]) << endl;
	cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0])  << endl;

	system("pause");
	return 0;
}

(2)可以获取数组在内存中的首地址

int main()
{
	int arr[5] = { 1, 2, 3, 4, 5 };
	cout << "数组首地址为:" << (int)arr << endl;
	cout << "数组中第一个元素地址为:" << (int)&arr[0] << endl;
	cout << "数组中第二个元素地址为:" << (int)&arr[1] << endl;

	system("pause");
	return 0;
}

二、二维数组

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

1.二维数组定义方式

二维数组定义的四种方式,但普遍用二种。

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

int main()
{
	int arr1[2][3];
	arr[0][0] = 1;
	arr[0][1] = 2;
	arr[0][2] = 3;
	arr[1][0] = 4;
	arr[1][1] = 5;
	arr[1][2] = 6;

	//外层循环打印行数,内层循环打印列数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr1[i][j] << endl;
		}
	}

	system("pause");
	return 0;
}

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

int main()
{
	int arr2[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };

	//外层循环打印行数,内层循环打印列数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr2[i][j] << " ";
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

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

int main()
{
	int arr3[2][3] = { 1, 2, 3, 4, 5, 6 };

	//外层循环打印行数,内层循环打印列数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr3[i][j] << " ";
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

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

int main()
{
	int arr4[][3] = { 1, 2, 3, 4, 5, 6 };

	//外层循环打印行数,内层循环打印列数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr4[i][j] << " ";
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

2.二维数组数组名

(1)查看二维数组所占内存空间

int main()
{
	int arr1[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
	cout << "int型二维数组占用的空间为:" << sizeof(arr1) << endl;   //24
	cout << "二维数组第一行占用的空间为:" << sizeof(arr1[0]) << endl;   //12
	cout << "二维数组第一个元素占用的空间为:" << sizeof(arr1[0][0]) << endl;   //4
	cout << "二维数组的行数为:" << sizeof(arr1) / sizeof(arr1[0]) << endl;      //2
	cout << "二维数组的列数为:" << sizeof(arr1[0]) / sizeof(arr1[0][0]) << endl;   //3

	double arr2[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
	cout << endl;
	cout << "double型二维数组占用的空间为:" << sizeof(arr2) << endl;   //48

	system("pause");
	return 0;
}

(2)获取二维数组首地址

int main()
{
	int arr[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
	cout << "二维数组首地址:" << (int)arr << endl;
	cout << "二维数组第一行首地址:" << (int)arr[0] << endl;
	cout << "二维数组第二行首地址:" << (int)arr[1] << endl; //第一行和第二行差12个字节

	cout << "二维数组第一个元素首地址:" << (int)&arr[0][0] << endl;
	cout << "二维数组第二个元素首地址:" << (int)&arr[0][1] << endl;

	system("pause");
	return 0;
}

标签:arr,cout,int,C++,学习,数组名,数组,main
From: https://blog.csdn.net/hihahahahah/article/details/141430558

相关文章

  • C++入门基础知识29
    成长路上不孤单......
  • C++(stoi())
    目录1.函数1.1参数1.2返回值1.3异常2.示例2.1使用base参数2.2pos参数的使用3.总结std::stoi()是C++11引入的一个标准库函数,用于将字符串转换为整数。与atoi()不同,stoi()提供了更强的功能,包括错误处理、支持指定进制等。1.函数intstoi(conststd::string&......
  • C++(atoi())
    目录1.函数1.1参数1.2返回值1.3注意事项2.示例3.atoi的局限性4.推荐替代函数atoi()是C++标准库中的一个函数,用于将C风格字符串转换为整数。atoi是"ASCIItoInteger"的缩写,它可以将包含数字的字符串解析为整数值。1.函数intatoi(constchar*str);1.1参......
  • 零基础学习人工智能—Python—Pytorch学习(八)
    前言本文介绍卷积神经网络的上半部分。其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多,就是因为学习资源中想当然的地方太多了。概念卷积神经网络,简称CNN,即Convoluti......
  • 直面程序员的AI焦虑:学习大语言模型开发是关键
    随着AIGC热潮的兴起,越来越多的AI工具应用开始出现,包括OpenAIChatGPT、GithubCopilot等,这些工具正在改变着传统的工作生产方式。在2023年3月的一次发布会中,OpenAI甚至展示了直接通过识别原型草图,智能生成网站代码的案例。一时间,“程序员要失业了”类似言论甚......
  • 今日份笔记奉上,前两天扎针灸手肿了打字不太方便学习进程搁置了,今天简单学了写Dos指令
    基本Dos指令打开CMD1.开始+系统+命令提示符2.Windows+R输入cmd3.在任意文件下按shift+右键打开powershell4.资源管理器地址栏+cmd+空格+回车以管理员方式运行开始中命令提示符可以管理员身份运行常用的Dos指令#盘符切换#查看当前目录下的所有文件dir#切换目录cd#......
  • 数论学习笔记
    积性函数一般我们只需要考虑定义域在\(\mathbb{Z}\)就够了,什么实数,复数都不用管。如果函数\(f(x)\)满足对于任意的\(a,b\)且\(\gcd(a,b)=1\),都有\(f(ab)=f(a)f(b)\)。欧拉函数\(\varphi(i)\)\(\varphi(n)\)定义为大于等于\(1\)且小于\(n\)且与它互质的数的个数......
  • 亦菲喊你来学机器学习(9) --逻辑回归实现手写数字识别
    文章目录逻辑回归实现手写数字识别训练模型测试模型总结逻辑回归逻辑回归(LogisticRegression)虽然是一种广泛使用的分类算法,但它通常更适用于二分类问题。然而,通过一些策略(如一对多分类,也称为OvR或One-vs-Rest),逻辑回归也可以被扩展到多分类问题,如手写数字识别(通常是......
  • 学习分享:如何学习 API 中的数据格式
    以下是学习API中数据格式的要点:一、了解常见数据格式JSON(JavaScriptObjectNotation):结构特点:它是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。JSON数据格式由键值对组成,类似于Python中的字典或者JavaScript中的对象。例如:{"name":"John",......
  • MyBatis 源码解读:专栏导读与学习路线
    前言MyBatis是Java开发中广泛使用的持久层框架,其简洁的配置和强大的功能使得它在开发人员中备受欢迎。然而,MyBatis的背后隐藏着许多设计巧妙的架构和复杂的实现逻辑。通过源码解读,我们可以更深入地理解MyBatis的设计思想和工作原理,从而更好地应用它。本专栏将以源码......