热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

call.addparameter数组类型参数_C语言复习计划(四)|“数组”篇

你还躺在宿舍温暖的小床上吗?还在刷着抖音,打着游戏吗?还享受着吃了睡睡了吃的生活吗?嘿,大兄dei࿰
bcb04b48c96b6fa9a6b70f02e9f593ea.png

你还躺在宿舍温暖的小床上吗?

还在刷着抖音, 打着游戏吗?

还享受着吃了睡 睡了吃的生活吗?

嘿,大兄dei,该醒醒了啊!

马上就要考试了!

d73924f98116098e050efff4d94c4f52.png

领略过了“分支结构”的复杂

体会过了“循环结构”的魅力

那么现在

让我们一起徜徉在“数组”知识的海洋里吧!

一、一维数组

数组:方便数据的管理和使用,便于完成大量数据的处理,简化程序设计。

1.一维数组定义格式

类型名 数组名 [数组长度]

类型名:数组元素的类型

数组名:数组(变量)的名称,标识符

数组长度:常量表达式,给定数组的大小

     例如:int a[10];

定义一个含有10个整型元素的数组a

2. 数组定义引用

先定义,后引用,只能引用单个的数组元素,不能一次引用整个数组

引用数组元素:

    数组名[下标]

下标:整型表达式

取值范围:[0,数组长度-1]

例如:int a[10];

表示10个元素:a[0]、a[1]、......a[9]

注意:下标不能越界,不能引用a[10]

3. 一维数组初始化

可以定义数组时,对数组元素赋初值

类型名 数组名 [数组长度] = {初值表};

例如:

int a[10] = {1,2,3,4,5,6,7,8,9,10}

定义数组a有10个int类型的元素,并为这些元素赋初值:a[0]=1, a[1]=2,......a[9]=10

4.一维数组部分元素初始化

一般数组 如果没有初始化,所有元素为随机值;但如果对部分元素初始化,没有初始值的元素自动赋0

int fib[20]={0,1};

fib[0] =0, fib[1]= 1,其余元素为0

如果对全部元素都赋初值,可以省略数组长度int a[10]={0,1,2,3, 4, 5,6, 7,8, 9}

可写成inta[]={0,1,2,3, 4,5, 6,7, 8, 9};

建议不要省略数组长度

是不是觉得很懵?

63af7f3cfb51591f3a73aada9d649d70.png

5.数组作为函数参数

若将一个数组作为实际参数传递给函数,只需不带方括号的数组名即可。

若数组a的定义为: int a[10];

若要将数组a作为实参传递给被调用函数SumArr(),则调用语句可写为: SumArr(a,10); 

数组名代表数组首元素的地址。因此数组名做参数就可以将数组的起始地址传递给形参。另外需要将数组元素的个数也传递给被调用函数。

函数SumArr()的函数原型如下:

int SumArr (int b[ ], int n)

表示函数SumArr()期望用形参b来接收一个整型数组,用形参n来接收数组元素个数。

0f577285ce99a12c37467b8658e8051e.png

一般变量作参数:传递的是数值,形参的值的改变不影响实参。

数组做参数:传递的是数组的首地址,形参数组和实参数组实质上是同一块内存区域,形参数组发生改变,实参数组也随之发生改变。

好想休息呀!

d63d9cd73a72f56688cab882bea1bc4f.png

二、二维数组

1.定义

类型名 数组名 [行数][列数]

例如:int a[3][2];

定义二维数组a,3行2列,6个元素

2.引用

先定义,后引用。

数组元素的引用:

    数组名[行下标][列下标]

行下标和列下标:整型表达式

行下标的取值范围是[0,行数-1]

列下标的取值范围是[0,列数-1]

c4068f37889a0852249e8e1ba154851e.png1ff80a0fdab49f661f30c88853f5871f.png501e24b4cccac66926fc338a188e7de6.png

3.二维数组的初始化

143d7ebb9ab63326bf5e17b6d36ef389.png191e473ee36c2555962b5a7fffc22b15.png

编译器会根据初值的个数和数组的列数计算出数组的行数,但建议不要省略

4.二维数组做函数参数

若将一个二维数组作为实际参数传递给函数,只需不带方括号的数组名即可。若数组a的定义为:int a[5][10];

若要将数组a作为实参传递给被调用函数SumArr(),则调用语句可写为: SumArr(a);

因为数组名代表数组首元素的地址,因此数组名做参数就可以将数组的起始地址传递给形参。

声明形参数组时可忽略第一维的长度,如:

int SumArr( int a[5][10] );

int SumArr( int a[][10] );

不能省略除第一维之外的其他维数,因为多维数组在C语言的存储是“先行后列”。

ok,数组到此结束~

554de2e5050e754d0c9b6dadfca9794c.png

【河南工程学院计算机学院】

3abfc6713c4fb9d3d5d2d866d744da7e.pngc8ce86bb69352a0b52b011fbd779c2cc.png

公众号:河南工程学院计算机学院

邮箱:2925881207@qq.com

微博:河南工程学院计算机团委

抖音:豫工计算机

运营:计算机学院学生会网宣部

编辑:吕诗情

排版:吕诗情

校对:张硕




推荐阅读
  • 那你就是学的c语言,跟我学c语言
    本文目录一览:1、如何学习C语言?2、新手如何 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 《2017年3月全国计算机等级考试二级C语言上机题库完全版》由会员分享,可在线阅读,更多相关《2017年3月全国计算机等级考试二级C语言上机题库完全版( ... [详细]
  • c语言基础编写,c语言 基础
    本文目录一览:1、C语言如何编写?2、如何编写 ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • C语言学习笔记—链表(二)链表的静态添加及动态遍历
    链表的静态添加及动态遍历我们知道数组中的数据存储是有序的,而链表中的数据是无序的但是存在某种联系使之组成链表。那么我们如果向一组数据中添加一个数据元素, ... [详细]
  • 2017电大最新题库电大Java语言与WWW技术形成性考核填空题1、Java具有的特点简单、面向对象、与平台无关、解释型、多线程、安全、动态的语言。2、开发与运行Java程序需要经 ... [详细]
  • day04_流程控制
    流程控制在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要 ... [详细]
author-avatar
Daro_olingke_572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有