黑马程序员-C语言数组的使用注意事项

本文介绍了C语言数组的一些关键点,包括数组类型的定义、长度限制、初始化方式及后果、数组名的特性、sizeof运算符的应用、数组作为函数参数时的行为以及避免数组越界的重要性。强调了数组长度在定义时必须指定,且数组名代表首地址,不可修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 数组定义时使用的数据类型是指数组中存储的数值的类型,并不是数组的类型
  • 定义数组时,数组的长度可以是常量、常量表达式和宏定义不能是变量,但是在xcode下被优化可以使用变量,但是如下形式定义的数组在xcode下的初始化是不行的:
                       int len = 3, a[len] = {1,2,3};//xcode会报错

  • 数组名不能和其他变量名同名
  • 若数组没有初始化,其元素有值,但是垃圾值;若采用定义时就初始化的方式定义数组,若数组进行了部分初始化,则未初始化的部分,系统默认给我们初始化为0;若采用先定义后初始化的方式定义数组,则未初始化的部分系统不会给我们默认初始化为0
  • 数组名代表数组的首地址等于数组第一个元素的地址;数组名是一个常量,存储的是数组的首地址,当数组被创建时就存在了,不允许再修改
  • sizeof()计算变量在内存中占用的字节数
  • 数组长度的计算方法:int a[10],length=sizeof(a)/sizeof(int);
  • 数组名作为实参传递时,是地址传递,即在调用函数的时候将数组的首地址传递给形参,不会再在内存空间中为该形参再分配存储空间。并且传递过程中,数组的长度信息会丢失,传递后数组的长度统一是8个字节,因为C语言规定,数据的地址在内存中占用的存储空间是8个字节
  • 数组名作为实参传递时,实参和形参的类型和长度必须一致,虽然不一致也不会报错,但是得到的结果是未知的,无法正确使用该数组;传递时,可以不指定形参数组的长度
  • 要避免在使用数组时发生越界问题,虽然xcode也不会报错,但是越界的数组元素中存放的数据是不安全的。
  • 若采用先定义后初始化的方式定义一个数组,则在定义数组的时候,必须指明数组的长度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值