c语言数组定义(详细)「建议收藏」

c语言数组定义(详细)「建议收藏」数组:什么是数组:变量的组合,是一种定义变量的手段。定义:类型数组名[数量];数组定义后,默认值同样不确定,因此也需要初始化。intarr[5]<==>intnum1,num2,num3,num4,num5;使用:数组名[编号]编号(下标)从0开始,范围[0,数量-1]遍历:配合for循环从头到尾显示,循环变量i就当做数组的下标。intarr[5];f…

大家好,又见面了,我是你们的朋友全栈君。

数组:
什么是数组:变量的组合,是一种定义变量的手段。
定义:类型 数组名[数量];
数组定义后,默认值同样不确定,因此也需要初始化。
int arr[5] <==> int num1,num2,num3,num4,num5;
使用:数组名[编号]
编号 (下标) 从0开始,范围[0,数量-1]
遍历:配合for循环从头到尾显示,循环变量i就当做数组的下标。
int arr[5];
for(int i=0;i<5;i++)
{

printf(“%d “,arr[i]);
}
初始化:int arr[5] = {1,2,3,4,5};
1、如果初始化数据不足补零。
2、如果初始化数据过多会丢弃,但是会产生警告
3、如果有初始化数据,可以省略数组的长度,因为编译器会统计数组的个数,然后告诉数组
4、只能给元素逐个赋值,不能给数组整体赋值。
sizeof(arr):计算出数组的总字节数
sizeof(arr[0]):计算出数组的第一个元素的字节数
计算数组的长度:sizeof(arr)/sizeof(arr[0]);
二维数组:
一维数组可以看作把变量排成一排,二维数组相当于把变量排成一个方阵。
也可以认为二维数组是由多个长度相等的一维数组构成。
定义:类型 数组名[行数][列数];
int arr[3][5];
[][][][][]
[][][][][]
[][][][][]
使用:数组[行号][列号];
行号和列号都是从0开始,范围[0,数量-1];
arr[0][0] arr[0][1] arr[0][2] arr[0][3] arr[0][4]
arr[1][0] arr[1][1] arr[1][2] arr[1][3] arr[1][4]
arr[2][0] arr[2][1] arr[2][2] arr[2][3] arr[2][4]
遍历:双层for循环,外层循环负责行号,内层循环负责列号
初始化:
1、分段赋值
int arr[3][5]={
{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};
2、连续赋值
int arr[3][5]={1,2,3,4,5,11,12,13,14,15,21,22,23,24,25};
3、未赋值的元素自动补零
4、初始化时,行数可以省略,但是列数不可以。
int arr[][5]={
{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};
变长数组:
什么是变长数组:指的是数组在编译期间长度还不确定,在运行期间可以发生变化,当执行到数组定义语句的时候,数组的长度就确定下来(一旦确定,不能改变)
优点:可以根据程序运行期间的实际需要,灵活设置数组的长度,达到节省内存的目的。
缺点:不能初始化(因为数组的初始化是在编译的帮助下完成,但是变长数组的长度在编译期间还不确定,因此不能初始化)

数组的越界:
在C语言中使用数组时,是不对下标进行检查的(检查会浪费大量的时间,降低效率),数组下标的正确完全靠程序员自觉。
数组越界的后果:
1、一切正常
2、段错误
3、脏数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162999.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 激活码【2021免费激活】

    (pycharm 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    52
  • js 判断字符串中是否包含某个字符include的坑「建议收藏」

    js 判断字符串中是否包含某个字符include的坑「建议收藏」方法一indexOf()(推荐)varstr=”123″;console.log(str.indexOf(“3″)!=-1);//trueindexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。方法二test()varstr=”123”;varreg=RegExp(/3/);console.log(reg.test(str));//truetest()方法用于检索字

    2022年10月6日
    4
  • [转]Delphi中QuotedStr介绍及使用

    [转]Delphi中QuotedStr介绍及使用转自:http://www.360doc.com/content/13/0524/09/7873422_287679198.shtml使用S:string;qry2.SQL.add(‘select*fromawhereb=’+s);出现错误。询问高手之后使用qry2.SQL.add(‘select*fromawhereb=’+QuotedStr(s));正常。QuotedS…

    2022年10月17日
    4
  • SAE J1939 – 简短介绍[通俗易懂]

    SAE J1939 – 简短介绍[通俗易懂]SAEJ1939–简短介绍在商用车辆领域,标准化的,串行的协议用于单个电子控制单元(ECU)和传动系统组件之间的通讯已有一段时间。通过使用标准化的串行协议,可具有以下优势:组件制造商只需要采用一个协议;这主要是商用车辆才会涉及的问题,因为生产量低。商用车辆制造商可依靠不同供应商的组件。可确保组件之间的互操作性,来自不同制造商的组件不用调整就可一同工作。由国际汽车工程师协会…

    2022年5月1日
    55
  • 手机游戏开发现状分析[通俗易懂]

    手机游戏开发现状分析[通俗易懂]随着近年来手机的日渐普及,手机游戏已经成为整个游戏领域发展速度最快的部分。根据英国某媒体研究公布的统计数据,今年的手机游戏市场的产值已经达到5.87亿美元,比去年年翻了一番。该公司预计到今后几年里这一市场的产值将达到目前的6倍,增至38亿美元。 我国的手机游戏在最近一年,也有了长足的发展。但是就其规模而言,还远远没有达到国外的水平。这其中原因很多,但有一点是可以肯定的,我国的手机游戏前景是光明

    2022年4月30日
    42
  • vue生命周期函数_vue生命周期函数有哪些

    vue生命周期函数_vue生命周期函数有哪些生命周期函数生命周期函数代表的是Vue实例,或者是Vue组件,在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段和运行期间以及销毁期间。其中创建期间的函数有beforeCreate、c

    2022年7月31日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号