文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-30 01:49

关注

本文小编为大家详细介绍“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 ";

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

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

一维数组的使用

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

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

总结

一维数组的存储

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

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

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

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

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

二维数组的创建与初始化 

1.二维数组的创建

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

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

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

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

2.二维数组的初始化

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

第一行:123 第二行:45

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

二维数组的存储

二维数组在内存中的存储

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

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

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

数组的越界

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

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

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

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯