打卡学习第八天

本文详细介绍了C语言中的数组,包括声明、初始化、访问元素、多维数组特别是二维数组的使用,以及如何在函数中传递和返回数组。此外,还提到了数组的指针操作,double与float的区别,并分享了获取数组元素数量的小技巧。
摘要由CSDN通过智能技术生成

C数组

数组是用来存储一系列数据(一系列相同类型的变量)。所有的数组都是由连续的内存位置组成,最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组


数据类型      数组名 [元素数量]

初始化数组

可以逐个初始化数组,也可以使用一个初始化语句。

数据类型      数组名 [元素数量(此时可省略)]={ , , , , ,}

所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。

访问数组元素

数据类型  变量=数组名[索引];

在这里插入图片描述

多维数组

数据类型      数组名 [元素数量][ 数量 ][ 数量 ][ 数量 ];

二维数组

多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。

例 声明一个x行y列的二维整型数组

int array[x][y];
初始化二维数组

多维数组可以通过在括号内为每行指定值来进行初始化。

int array[3][4]={
 {0,1,2,3},

 {4,5,6,7},

 {8,9,10,11}

};

内部嵌套的括号是可选的。

或者

int  array[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

在这里插入图片描述

传递数组给函数

想要在函数中传递一个一维数组作为参数,可以通过下面三种方式来声明函数形式参数。

方式一

形式参数是一个指针

void   函数名(int  *param)

{
       ……

}

方式二

形式参数是一个已定义大小的数组

void 函数名(int  param[10] )

{
       ……

}

方式三

形式参数是一个未定义大小的数组

void   函数名(int  param[ ] )

{
       ……

}

在这里插入图片描述

从函数返回数组

C 语言不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
如果想要从函数返回一个一维数组,需要声明一个返回指针的函数。

int  *myFunction( )
{
       ……

}

C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
在这里插入图片描述

注:srand((unsigned)time(NULL))是初始化随机函数种子:

  • 拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。
  • 计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。
  • 使用时,参数可以是unsigned型的任意数据,比如srand(10);
  • 如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。

指向数组的指针

数组名是一个指向数组中第一个元素的常量指针。balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元素的地址。
使用数组名作为常量指针是合法的,反之亦然。因此,可以用*(balance + 4) 来访问 balance[4] 数据。
在这里插入图片描述
在上例中,p 是一个指向 double 型的指针,可以存储一个 double 类型的变量。一旦我们有了 p 中的地址,*p 将给出存储在 p 中相应地址的值。

注:double与float的区别

  • double的精度更高,储存的小数位数更多。
  • 输出默认都是 6 位小数,想输出更多小数可以自己控制,如 %.10lf 就能输出 10 位小数。
  • 一般情况下 double 类型的占位符可以用 %lf。

小技巧

在我们没有明确数组的元素个数时,在程序中想知道数组单元个数可以使用 sizeof(a)/sizeof(a[0]), sizeof(a) 是得到数组 a 的大小,sizeof(a[0]) 是得到数组 a 中单个元素的大小(因此可以不必要是a[0],a[i]都行)。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值