千家信息网

C语言中的数组怎么创建和使用

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,本文小编为大家详细介绍"C语言中的数组怎么创建和使用",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言中的数组怎么创建和使用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2025年01月29日C语言中的数组怎么创建和使用

本文小编为大家详细介绍"C语言中的数组怎么创建和使用",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言中的数组怎么创建和使用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一维数组的创建和初始化

1.数组的创建

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

2.数组创建方式

type_t(数组类型) arr_name(数组名) [const_n](用来指定数组大小)

3.数组的初始化

数组的初始化是在其定义的时候就应该执行的,如:为5个已经知道的整形数据进行排序

//正确int Arr[5] = { 1, 2, 3, 4, 5 };//而不能用下面这种方式int Arr[5];Arr[5] = { 1, 2, 3, 4, 5 };

因为对于 Arr[5] = 来说,这是一个赋值操作,将右值赋值给左值,一切常数、字符和字符串都是右值。在这里 { 1, 2, 3, 4, 5 }; 并不是右值的一种,所以这是错误的。

另一个错误是,Arr[5] 下标为 5 这个元素实际上并不存在的属于数组的越界。

有数字类型的初始化,自然也有字符类型的初始化

字符类型初始化的两种方式:

char arr[5]={'a','b','c','d','e'};char arr[5]= "abcde ";

1.空字符是字符串的终止符(空字符本身不是字符串的一部分,所以字符串的长度并不包含空字符)

2.操作字符串时,必须保证字符串以空字符(\0)结尾(不以空字符结尾的字符序列,不是字符串)。

一维数组的使用

用单引号形式初始化的数组代表只有这些数据,并且在末端不包含\0

总结

  • 数组是使用下标来访问的,下标是从0开始。

  • 数组的大小可以通过计算得到。

  • Int sz = sizeof(arr)/sizeof(arr[0])

一维数组的存储

当我们定义了长度为5的整型数组,操作系统就会为其分配连续的五个内存地址。

这些地址用来存放数据,每一个地址所占的字节是数组的数据类型所决定的。 如int类型的每一个地址占据着4个字节,double类型的8个。

因为每个整形大小为四个字节,所以如图每个地址间隔为4。

讲完了一维数组的知识点,让我们简单了解一下二维数组

二维数组的创建与初始化

1.二维数组的创建

第一个括号指定行,第二个括号指定列

可以只对部分元素赋值,未赋值的元素自动取"零"值。例如:

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

2.二维数组的初始化

第一行:123 第二行:45

二维数组的列不能省略行可以在括号内大括号分割明确时省略

二维数组的存储

二维数组在内存中的存储

如果定义一个这样的二维数组int a[3][4]={undefined{1,3,5,7},{9,11,13,15},{17,19,21,23}};则其在内存中的表示可能下面这样的。

由上图可以看出,在内存中二维数组是按照行主序进行存储的,从内存的角度上看,二维数组本质就是一个一维数组。如果把二维数组的每一行看成一个整体,即看成一个数组中的一个元素,那么整个二维数组就是一个一维数组。而二维数组的名字代表二维数组第0行的首地址(注意它是代表一行元素的首地址,而不是第0行第0列元素的首地址,虽然是相等的,但不能这么理解,所以在没有强制转换的情况下,二维数据要么通过行指针进行参数传递,要么通过二维指针进行参数传递)。

数组的越界

这里讲的数组长度存在一个界,而一旦超过了这个大小,就会发生一些未知的错误,也就是所谓的越界

这里用一个例子来说明下越界后数组内部的值的情况:

根据代码可知,当数组越界后,其数值是不确定的。

读到这里,这篇"C语言中的数组怎么创建和使用"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

数组 二维 字符 地址 类型 元素 字符串 一维 内存 数据 空字符 大小 括号 存储 语言 一行 下标 字节 文章 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南游星网络技术有限公司的电话 国家开通法律法规数据库 宅时光无法连接服务器 秦农银行网络安全 鹏鹏网络技术服务有限公司 网络安全可分为 如何让用户成为服务器 数据库如何打开表的浏览窗口 计算机网络技术是什么编号 属于关系数据库中内模式的范畴 海淀区智能网络技术售后保障 网络安全和信息化招标 知网维普万方数据库有何不同 福建蜂巢网络技术 杭州网络技术开发公司 我的世界花雨亭服务器怎么升级 开学了网络安全课程 如何提高校园网络安全 服务器垃圾回收机制 如何利用个人电脑架设云服务器 网管第1课计算机与网络安全 宁波北仑浪潮高密度服务器 网络安全知多少题库 国际比较常用的数据库不包括 数据库健身系统 张店应用软件开发价格 清远市新程网络技术有限公司 北京国智惠民互联网科技有限公司 浪潮信息 网络安全 江西省网络安全知识竞答题库
0