数组【C语言】

news2024/11/20 18:32:51

目录

一维数组的创建和初始化

数组创建

数组的初始化

一维数组的使用

一维数组在内存中的存储

二维数组的创建与初始化

二维数组的创建

二维数组的初始化

二维数组的使用

二维数组在内存中的存储

数组越界

数组名作为函数参数

 数组名


一维数组的创建和初始化

数组创建

数组是一组相同类型元素的集合

数组的创建方式

数组的初始化

数组的初始化是指在创建数组的同时给数组的内容一些合理初始值(初始化)

数组在创建的时候如果不想指定数组的大小就得初始化,数组的元素个数根据初始化的内容来确定

一维数组的使用

[ ]下标引用操作符,就是数组访问的操作符

 数组是通过下标进行访问的,下标是从0开始的、

arr[9]=10;

数组大小可以通过计算得到 (数组大小的单位是字节)

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

sizeof(arr)计算得到的是数组的总大小

一维数组在内存中的存储

 数组在内存中是连续存放的,且随着数组下标的增长,元素地址由低地址到高地址

二维数组的创建与初始化

二维数组的创建

int arr[10][10]

char arr[10][10]

double arr[10][10]

二维数组的初始化

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

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

int arr[][4]={{2,3},{4,5}}; //二维数组如果有初始化,行可以省略,列不可以省略

二维数组的使用

二维数组的使用也是通过下标的方式

#include <stdio.h>
int main()
{
	int arr[3][4] = { 0 };
	int i = 0, j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			arr[i][j] = 4 * i + j;
		}
	}
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

二维数组在内存中的存储

#include <stdio.h>
int main()
{
	int arr[3][4] = { 0 };
	int i = 0, j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			printf("arr[%d][%d]=%p\n", i, j, &arr[i][j]);
		}
	}
	return 0;
}

 二维数组和一维数组一样在内存中是连续存取的,且随着数组下标的增长,元素地址由低地址到高地址

数组越界

数组的下标是有范围限制的,规定数组下标由0开始,如果数组中有n个元素,那么数组中最后一个元素的下标就为n-1

当我们访问的元素下标小于0,或者大于n-1,那么超过了数组的合法空间,就称为越界访问

C语言不做越界访问的检查,我们只能自己检查

二维数组的行和列也可能出现越界访问

数组名作为函数参数

列如我们初始化一个数组

 这里并没有完成初始化,数组长度为6,但是传给函数之后得到的数组长度为1,因为这里的arr传的是数组首元素的地址,函数中arr本质其实也是指针,如果我们需要在函数中使用数组的长度,我们需要另外传一个变量,传数组的长度

修改后

 

 数组名

数组名是首元素的地址,但是有两个例外

两个例外

1.sizeof(数组名),计算数组的大小,这里的数组名代表整个数组

2.&数组名,取出数组的地址,数组名代表整个数组

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

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

相关文章

chatgpt赋能Python-python3_8降级3_6

Python3.8降级3.6&#xff0c;你需要知道的一切 在Python语言的世界中&#xff0c;每一个版本带来了新的变化和功能。但是在某些情况下&#xff0c;汲取早期版本的优点也是很必要的。Python3.8之前的版本当中&#xff0c;Python3.6是广泛使用的版本&#xff0c;因为它包含了许…

t检验是基于t分布的

例&#xff1a;鸢尾花的平均花瓣长度为3.5cm&#xff0c;这种说法正确吗&#xff1f; 可以根据假设检验的步骤&#xff0c;进行解决。 /设置原假设与备择假设&#xff1a; 原假设&#xff1a;μ μ0 3.5cm&#xff08;说法正确&#xff09; 备择假设&#xff1a;μ ≠ μ0 ≠…

chatgpt赋能Python-python3_8怎么安装matplotlib

Python3.8怎么安装Matplotlib Matplotlib是一个非常流行的Python可视化库&#xff0c;它可以用来创建各种类型的图形&#xff0c;包括线图、散点图、直方图、饼图和热图等等。在本文中&#xff0c;我们将介绍如何在Python3.8中安装Matplotlib&#xff0c;以及如何使用它来绘制…

chatgpt赋能Python-python3_9_0怎么安装

Python3.9.0的安装指南 Python作为目前世界上使用最广泛的编程语言之一&#xff0c;在数据科学、人工智能、Web开发等领域都有着广泛的应用。而今年10月5日&#xff0c;Python官方发布了最新的稳定版本——Python3.9.0。本文将提供一份简明的Python3.9.0安装指南。 准备工作 …

C++模板类与继承

目录 分类 一、模板类不继承 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;分析 &#xff08;3&#xff09;运行结果 二、模板类继承普通类 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;分析 &#xff08;3&#xff09;运行结果 三、普通类继…

【TCP协议】TCP的运输连接管理-三次握手四次挥手

TCP 的运输连接管理 TCP 是面向连接的协议&#xff0c;运输连接是用来传送 TCP 报文的&#xff0c;TCP 的运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此&#xff0c;运输连接就有三个阶段&#xff0c;即&#xff1a;连接建立、数据传输、连接释放。 TCP…

chatgpt赋能Python-python3_6_6怎么用

Python3.6.6的基本介绍 1. Python3的发展历程 自1991年Guido van Rossum创造了Python language以来&#xff0c;Python一直在不断发展和改进。Python3是Python中的最新版本&#xff0c;它对Python2进行了重大升级。Python3.6.6是Python3的一个稳定版本&#xff0c;其中包含了…

chatgpt赋能Python-python3_4安装numpy

Python3.4安装Numpy的SEO指南 Numpy是Python科学计算库之一&#xff0c;它提供了强大的支持&#xff0c;使您可以使用Python进行数学和科学计算。Numpy的安装是许多Python开发者必须掌握的技能&#xff0c;因为它是许多其他库的先决条件。在本SEO指南中&#xff0c;我们将介绍…

MATLAB信号处理:滤波器设计、频域分析和数字信号处理的应用和优化

章节一&#xff1a;引言 在现代科技领域中&#xff0c;信号处理起着至关重要的作用。它涵盖了从音频和图像处理到通信和生物医学工程等众多领域。MATLAB作为一种强大的数值计算软件&#xff0c;为信号处理提供了丰富的工具和函数&#xff0c;使得信号处理任务更加高效和可靠。…

chatgpt赋能Python-python3_6怎么下载

Python3.6如何下载&#xff1a;完全指南 Python 3.6是一种非常强大的编程语言&#xff0c;被广泛应用于各种应用程序和领域。如果你还没有安装Python 3.6&#xff0c;那么你已经错过了很多有趣的功能和工具。本文将向你介绍如何在各种操作系统上下载Python 3.6&#xff0c;无论…

在Vue项目中vue-quill-editor的安装与使用【详细图解+过程+包含图片的缩放拖拽】

Quill 官网&#xff1a;https://quilljs.com// 一、Quill的安装与使用&#xff08;初级&#xff09; 1、下载安装 npm install vue-quill-editor --save这里建议使用管理员命令窗口的形式&#xff0c;找到自己的项目&#xff0c;如下图所示。然后进行安装&#xff08;目的&a…

RBTree改造,并模拟实现setmap

目录 RBTree改造 给红黑树增加迭代器 前置 前置-- RBT细节改造 模拟set 模拟map RBTree改造 给红黑树增加迭代器 前置 前置的作用是找下一个较大的节点。 假如我们it指向的是5&#xff0c;it则是将it指向6。加入it指向的是7&#xff0c;则it则是将it指向8。 也就是说…

三十八、流控效果、

1、流控效果 流控效果是指请求达到流控阈值时应该采取的措施&#xff0c;包括三种&#xff1a; 快速失败&#xff1a;达到阈值后&#xff0c;新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式。 warm up&#xff1a;预热模式&#xff0c;对超出阈值的请求同样是…

chatgpt赋能Python-python3m

Python 3: 一个新时代的编程语言 在编程的世界里&#xff0c;Python 3可能是当前最为热门的编程语言。Python 3是Python语言的最新版本&#xff0c;代码更加现代化&#xff0c;更加简洁易懂&#xff0c;比Python 2更加易于使用。这篇文章将介绍Python 3的各种特性&#xff0c;…

Git回滚详解

文章目录 git restore撤销工作区文件更改撤销暂存区文件更改 git checkoutgit revert冲突解决具体操作 git resetreset 的作用第 1 步&#xff1a;移动 HEAD&#xff08;--soft&#xff09;第 2 步&#xff1a;更新暂存区&#xff08;--mixed&#xff09;第 3 步&#xff1a;更…

如何写好英文论文中的句子?(下)

1 前情提要 大家先看完上一篇文章如何写好英文论文中的句子&#xff1f;&#xff08;上&#xff09;&#xff0c;再接着往下翻。 10 先说名词&#xff0c;再用代词&#xff08;it、they&#xff09;指代该名词 11 否定词放在句子开头附近 12 否定词的正确位置&#xff1a;助动…

消息通知之系统层事件发布相关流程

前言 Openharmony 3.1Release中存在消息通知的处理&#xff0c;消息通知包括系统层事件发布、消息订阅、消息投递与处理&#xff0c;为了开发者能够熟悉消息的处理流程&#xff0c;本篇文章主要介绍系统层事件发布的相关流程。 整体流程 代码流程 发布消息 { eventAction)w…

自定义颜色编辑选取对话框

一、简介 Qt中已经有一些封装好的对话框&#xff0c;比如QMessageBox、QColorDialog等&#xff0c;使用起来快捷方便&#xff0c;但缺点是我们无法为它们自定义样式&#xff0c;所以可能难以“融入”我们的项目。既然如此&#xff0c;那就自己做一个把。抱着这样的想法&#x…

Android SELinux安全机制与权限管理那些事

文章目录 前言权限管理系统应用特权应用历史漏洞广播的保护机制CVE-2020-0391 SELinux 前言 在 Android 漏洞挖掘和安全研究过程中&#xff0c;不可避免地会涉及到跟 Android SELinux 安全机制打交道&#xff0c;比如当你手握一个 System 应用的路径穿越的漏洞的时候想去覆写其…

DS:基于鸢尾花数据集利用多种数据降维技术(PCA、SVD、MDS、LDA、T-SNE)实现三维可视化

DS&#xff1a;基于鸢尾花数据集利用多种数据降维技术(PCA、SVD、MDS、LDA、T-SNE)实现三维可视化 目录 基于鸢尾花数据集利用多种数据降维技术(PCA、SVD、MDS、LDA、T-SNE)实现三维可视化 # 1、加载示例数据集&#xff08;鸢尾花数据集&#xff09; # 2、数据预处理 # T1、…