C语言学习——数组初学

目录

一、初探程序中的数组

1.数组的概念

2.数组的定义

 3.数组元素的访问

二、数组特性深入剖析

1.数组的初始化

2.数组的内存分布


一、初探程序中的数组

1.数组的概念

数组是相同数据类型变量的有序集合
—数组作为整体需要一个合法的命名(数组名)
—数组中的变量没有独立命名,只有在数组中的编号
—数组中的变量数量是固定不变的(数组大小固定)

2.数组的定义

语法:tpye Name [ size ]

示例: 

int arr1[10]; //定义名为 arr1 的数组
              //数组中一共有 10 个元素
              //每个元素的类型为 int

double farr[5]; //定义名为 farr 的数组
                //数组中一共有 5 个元素
                //每个元素的类型为double

 3.数组元素的访问

a.通过数组名 [下标] 的方式来访问元素
b.数组是一个有序的集合,每个元素有固定的下标
c.数组元素下标固定从0开始(可以使用变量作为下标)

示例:

int arr1[3];

arr1[-1] = 0; //ERROR

arr1[0] = 1;
arr1[1] = 2;
arr1[2] = 3;

arr1[3] = 4; //ERROR


 注意事项:

1.只有整型数才能作为数组的下标访问元素
2.下标越界是一种非常严重的编辑错误(工业级BUG来源)
3.下标越界带来的后果可能不会立即体现

二、数组特性深入剖析

1.数组的初始化

—语法:type Name [N] = { V0, V1, ... , Vn-1};
—意义:将数组中的元素分别初始化为 V0, V1, ... , Vn-1
int main ()
{
   int arr[5] = {2,4,5,5,6};
   int i = 0;
   for (i = 0 ;i<5 ;i++)
   {
       printf("arr[%d] = %d \n", i, arr[i]);
   }
   return 0;
}

数组初始化技巧

(1)自动确认数组大小
type Name [] = {V0, V1, ... , Vn-1};

(2)将部分数组元素初始化为0
/* s < N ,未指定初始值的元素默认为0*/
type Name [N] = {V0, V1, ... , Vs};

(3)将全部元素初始化为0
type Name [N] = {0};

2.数组的内存分布

数组在计算机底层是一片连续的内存,用于储存数组元素
—数组的大小字节数可以用sizeof()获取(单位为字节)

计算数组大小

type Name [] = {V0, V1, ... , Vn-1}; // 一共n个元素
sizeof(Name)/ sizeof( Name[0] ); // 计算结果为n

注意:
1.数字名只能作左值使用(可以看作常量)
2.只能使用整型常量对数组大小进行定义
3.只能使用整型值对下标访问数组元素

int size; //初始值多少?
int arr[size]; //数组大小多少?
int a[5] = {0};
arr[1.5] = 1; //第1.5个变量是哪个
arr = a; //常量不能作左值
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值