课外话:挫折是人生的常态,在我们遭遇疫情,不应一味放大痛苦让其充塞心灵。我们要学会调适心弦,坦然面对,全国人民团结一致,就一定会战胜疫情。祖国加油!武汉加油!!!
《你的答案》
——转载自哔哩哔哩up主:养猪的小仙女丫头
本节大纲
数组
程序的模块化设计
数组
定义
所谓数组,是有序的元素序列。
[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,
把具有相同类型的若干元素按无序的形式组织起来的一种形式。 [1] 这些无序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
注:引用自百度百科
描述:由基础数据类型组成的相同类型数据的集合称为数组
本节我们回顾一下第一节基础数据类型
基本数据类型:
八大数据类型结构都可组成数组,在派生数据类型中的结构体、共用体,指针类型都可以组成数组(后续学习)
数组在内存空间的存储为连续性存储即一层数据挨着一层
举图示例:
内存的使用:
标准定义方法
方法一:(定义未初始化)
signed int a[10];//数组名为a,类型为有符号整型
signed short a[10];// 数组名为a,类型为有符号短整型
signed long a[10];// 数组名为a,类型为有符号长整型
unsigned int a[10];// 数组名为a,类型为无符号整型
unsigned short a[10];// 数组名为a,类型为无符号短整型
unsigned long a[10];// 数组名为a,类型为无符号长整型
char a[10];// 数组名为a,类型为字符型
float a[10];// 数组名为a,类型为单精度浮点型
double a[10];// 数组名为a,类型为双精度浮点型
除此之位还有第二种定义数组的方法,以有符号整型为例子(定义且初始化)
方法二:
int a[] = {1,2,3,4,5};//数组名为a,类型为int,大小为5*4字节
int a[10] = {1,2};//数组名为a,类型为int,大小为10*4字节
第三种(不常用,动态分配:即程序运行到这一步时开始分配空间)
方法三:
int *a = new int[5];//数组名为a,类型为int,大小为5*4字节
注意:
数组名为数组在内存中的地址,数组首元素存储在数组名内存中的地址,第二个元素在第一个的基础上+4个字节为第二个元素存放的地址(int型)。
编程案例1
#include <stdio.h>
int main()
{
int i;
int a[5]={1,2,3,4,5};
for(i=0;i<5;i++)
printf("%d\n",a[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%d\n",a[0]+i);
return 0;
}
案例输出
输出结果:
程序的模块化设计
函数定义方法:
函数的定义:
返回类型 名字(形式参数表列)
{
函数体语句
return 表达式;
}
函数调用:
函数名(实际参数表列);
//引用自百度百科
种类
函数分为 库函数 和用户自定义函数。
C语言为了方便用户编写程序,为用户开发了大量的库函数,其定义在.h文件中,用户可以调用这些函数实现强大的功能。
函数的用法:
函数按常规应放在主函数前面,若主函数放在前面则要在主函数前写函数声明。
编程案例2
#include <stdio.h>
int minus(int x,int y)
{
return x-y;//返回x-y的值
}
int add(int x,int y)
{
return x+y;//返回x+y的值
}
int main()//主函数
{
int a,b;
printf("请输入a的值");
scanf("%d",&a);
printf("请输入b的值");
scanf("%d",&b);
printf("a+b=%d\n",add(a,b));//add(a,b)为函数调用
printf("a-b=%d\n",minus(a,b));//minus(a,b)为函数调用
return 0;
}
案例输出
编程案例3
#include <stdio.h>
int add(int x,int y);//函数声明
int minus(int x,int y);//函数声明
int main()//主函数
{
int a,b;
printf("请输入a的值");
scanf("%d",&a);
printf("请输入b的值");
scanf("%d",&b);
printf("a+b=%d\n",add(a,b));//add(a,b)为函数调用
printf("a-b=%d\n",minus(a,b));//minus(a,b)为函数调用
return 0;
}
int minus(int x,int y)
{
return x-y;//返回x-y的值
}
int add(int x,int y)
{
return x+y;//返回x+y的值
}
案例输出
由此可看出两个程序是等效的,为函数编写的两种方式
编程练习
int a[10]={1,2,3,4,5,6,7,8,9,10};
由以上分别计算输出第一项与第二项的和、差、乘、除,第二项与第三项的和、差、乘、除,依次类推到第九项与第十项的和、差、乘、除。