C语言 数组

目录

 数组初始化

 数组越界

 数组作为函数参数


 数组初始化

       数组的初始化:数组分一维二维等都需要对相应的数组进行初始化,在创建数组的同时给数组的内容一些合理初始值(初始化)。

       数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确定。 数组是使用下标来访问的,下标从0开始。

        数组的元素个数需根据初始化内容来确定,且数组通过找'\0'作为结束的标志。例:对于arr1来说:因为内存是连续的,abc后面的字符是随机值直到遇见'\0'则结束,所以abc后面跟着一堆的随机值。对arr2来看:双引号代表字符串,字符末尾自带'\0'。

        数组大小可以用sizeof计算,int整型占4个字节。在一维二维数组中内存存储数组是连续存放的,且地址随数组下标的增长而增长(低—>高)。

 数组越界

       数组下标有范围限制的,n个数组元素的话从0开始且最后一个下标是n-1 ,当不在这个范围(0—n-1)就属于数组越界访问超出数组合法空间,在这过程中编译器可能不会报错需要自己做好检查。

 数组作为函数参数

       数组名是首元素的地址,有两个例外:一是sizeof求数组名时则代表的是整个数组;二是&数组名也代表整个数组 ;除了这两种情况外,数组名表示都是首元素的意思。

接着下面讲函数参数:

       对比下面发现数组传参与变量传参不同,想要改变变量的值需要将变量地址传入通过地址找到变量并改变变量。然而数组传参不一样的就是传入数组名即首元素地址,知道首元素就可以找到数组其他元素。

 

       下面这两张图比较:不用指针是为了让还没学懂指针的同学们更清楚了解数组,其实将鼠标放置在函数上可以发现本身就是指针,数组和临时变量的区别就体现出来了。数组传参不需要指针就可以改变元素。

  • 49
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值