首页 > 其他分享 >数组详解——一维数组,二维数组(初始化,存储,输入与输出……)

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)

时间:2023-09-15 12:02:18浏览次数:48  
标签:初始化 arr int 详解 数组 printf sizeof

概念

相同元素的集合,存放>=1个数据 类型相同

1.一维数组

type arr_name[常量值(元素个数)]

存放在数组的值是数组元素,在创建数组时可以指定数组的大小和元素类型 type是数组元素的类型,可以是char,short,int ,float,也可以自定义

1.1初始化

完全初始化:

int arr1[5]={1,2,3,4,5};

不完全初始化:(剩余元素默认初始化为0)

int arr2[9]={1};

数组的大小是编译器根据初始化的内容决定的:

int arr3[]={1,2,3};

注意:当初始化的项超过预定项会不执行

1.2 数组类型

数组是一种自定义类型;通过改变数组元素个数的大小,数组类型会改变

arr1的数据类型是int [5] arr2的数据类型是int [9] arr3的数据类型是int [ ]

1.3 一维数组的下标

下标是从0开始的。例如:arr[0]=1

int arr[10] = {1,2,3,4,5,6,7,8,9,10};

[ ]是下标引⽤操作符

1.4 数组的输入与输出

输入:

for(i=0;i<5;i++)
	{
		scanf("%d", &arr[i]);
	}

输出:

for (i = 0; i < 5; i++)
	{
		printf("%d ", arr[i]);
	}

综合:

int main()
{
	int i = 0;
	int arr[5] = { 0 };
	for(i=0;i<5;i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < 5; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

结果:

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_i++

1.5 数组的存储

数组在内存中是连续存放

1.6 求数组元素的个数

sizeof(关键字) 计算类型或者变量的⼤⼩,

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_i++_02

int main()
{
	char arr[] = { "hello" };
	char arr1[] = { 'h','e','l','l','o' };
	printf("%d\n", sizeof(arr));
	printf("%d\n", sizeof(arr1));


	return 0;
}

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_初始化_03

int main()
{
	int a = 10;
	int arr[] = { 1,5,63,7 };
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(a));
	printf("%d\n", sizeof a);
	printf("%d\n", sizeof(arr));
	return 0;
}

sizeof后面是类型不能省略括号,计算的是所占内存空间的总⼤⼩,单位是字节。

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_初始化_04

!!!!求数组元素的个数:

int sz=sizeof(arr)/sizeof(arr[0]);

strlen是求字符串的长度,统计\0之前的字符长度

2. 二维数组

把⼀维数组做为数组的元素就是⼆维数组

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_i++_05

int arr[3][5];

• 3表⽰数组有3⾏ ; 5表⽰每⼀⾏有5个元素 (即3行5列)

2.1 初始化

不完全初始化(先放满一行,再放下一行):

int arr1[3][5] = {1,2};

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_初始化_06

完全初始化(每个元素都初始化):

int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_初始化_07

数组详解——一维数组,二维数组(初始化,存储,输入与输出……)_数组_08

初始化时省略行,但是不能省略列 ⼆维数组的行是从0开始的,列也是从0开始的 arr[8][4] ——第8行,第4列

2.2二维数组的输入和输出

int main()
{
	int arr[4][3] = {0};
	int i = 0;
	for (i = 0; i < 4; i++)
	{
		int j = 0;
		for (j = 0; j < 3; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	for (i = 0; i < 4; i++)
	{
		int j = 0;
		for (j = 0; j < 3; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

标签:初始化,arr,int,详解,数组,printf,sizeof
From: https://blog.51cto.com/u_16261646/7479705

相关文章

  • CH57x/CH58x/CH59xBLE芯片TMOS任务详解
    概述:蓝牙为了实现同多个设备相连,实现多功能和多任务,产生了调度问题。虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。为了实现多事件和多任务切换,需要把事件和任务对应,针对这种应用起了一个TMOS名字操作系统抽象层。TMOS作为调度核心,BLE协议栈、profile定义、所有的应......
  • 封装一个用来获取多层数组对象的最后一层对象集合
    //获取多层数组对象的最后一层的对象functiongetAllIds(tree:any,result:any){//遍历树获取id数组for(constiintree){if(tree[i].id)result.push(tree[i]);//遍历项目满足条件后的操作if(tree[i].children){//存在子节点就递归ge......
  • 详解Node.js开发中不可或缺的7个库
    详解Node.js开发中不可或缺的7个库news/2023/9/1414:26:05在Node.js开发中,选择合适的库对于提高开发效率和优化应用程序性能至关重要。本文将介绍七个备受关注的Node.js库,它们在各自的领域中展现了出色的功能和性能。这些库分别是:Config、Fetch、Ioredis、Multer、Cache......
  • 第15节课:AI框架图片识别之数据解析、Network初始化、Sigmoid激活函数及Feedforward函
    第15节课:AI框架图片识别之数据解析、Network初始化、Sigmoid激活函数及Feedforward函数详细内容请关注微信公众号:从零起步学习人工智能 https://mp.weixin.qq.com/s?__biz=MzU3OTc4OTEzNw==&mid=2247483658&idx=1&sn=3d8b40ce71e84c717428d4a1994581e0&chksm=fd618934ca1600229308......
  • Redis高级客户端Lettuce详解
    Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了ProjectReactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API,5.1版本的新特性如下:支持Redis的新增命令ZPOPMIN,ZPOPMAX,BZ......
  • Python接口自动化之Token详解及应用
    问题:在写接口自动化框架时,使用token鉴权后一直不生效,我是把"token:XX"放在请求头header里,调用接口时一直提示登录失效(鉴权失败),然后我就把token发到data中,还是不行,一直困扰着一、Token基本概念及原理1.Token作用为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使......
  • 对于数组中取下标中值操作int mid=(left+right)/2的讨论
    分两种情况1.left和right之间(含left和right元素)共有奇数个,此时中轴线穿过正中间的元素判断方法:right-left的值为偶数,即(right-left)%2=0。此时(left+right)/2恰为整数,此结果恰为left与right下标之间的中值下标,正好在中轴线上2.left......
  • 【愚公系列】2023年09月 WPF控件专题 Expander控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • C++下标运算符详解
    C++规定,下标运算符[]必须以成员函数的形式进行重载。该重载函数在类中的声明格式如下:返回值类型&operator[](参数);const返回值类型&operator[](参数)const;使用第一种声明方式,[]不仅可以访问元素,还可以修改元素。使用第二种声明方式,[]只能访问而不能修改元素。在实......
  • leetcode 将有序数组转换为二叉搜索树
    给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。示例1:输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9......