18) 数组
为什么需要数组
为了解决大量同类型的储存和使用问题 为了模拟现实世界 数组的分类 一位数组
怎样定义一位数组 为n个变量连续分配 所有变量的数据类型必须相同 所有变量所占的字节大小必须相等 有关以为数组的操作 初始化 完全初始化
Int a[5] = {1, 2, 3, 4, 5 }
不完全初始化, 未被初始化的元素自动为零 Int a[5] = {1, 2, 3} 不初始化,所有元素师垃圾值 Int a[5]; 清零
Int a[5] = {0} 错误写法:
1. int a[5];
a[5] = {1, 2, 3, 4, 5}//错误 只有在定义数组的同时才可以整体的赋值 其他情况下整体赋值都是错误的 2. int a[5] = {1, 2, 3, 4, 5} a[5] = 100; //错误 3. int a[5] = {1, 2, 3,4, 5}; int b[5];
如果要把a数组中的值全部赋值给b数组 错误写法: b = a; //错误
一维数组名不代表数组,只代表数组中所有的元素,一维数组名代表数组第一个元素的 正确写法: for(i = 0 ; i<5;++i) b[i]=a[i]; 赋值: 排序:
求最大值/最小值; 倒置: 查找: 插入: 删除:
二维数组
a[i][j] 表示第i+1行,j+1列的元素看待 初始化:
输出二维数组内容:用两个for循环就可以了 操作: 多为数组:
是否存在多维数组————不存在 因为内存是线性一维的
N维数组可以当做每个元素似乎n-1维数组的一位数组
19) 函数
为什么需要函数 避免了重复性操作 有利于程序的模块化 什么叫函数
逻辑上:能够完成特定功能的独立的代码单元 物理上:能够接收数据【当然也可以不接收数据】,能
够对接收的数据进行处理,能够将数据处理的结果返回
总结:函数是个工具,它是为了解决大量类似问题而设
计的,函数可以当做一个黑匣子
如何定义函数
函数的返回值 函数的名字(函数的形参列表) {
函数的执行体 }
1. 函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体方法。 2. Return表达式;的含义:
<1>.终止被调函数,向主调函数返回表达式的值 <2>.如果表达式为空,则只终止函数,不向主调函数返回
任何值
<3>.break是用来终止循环和switch的,而return是用来
终止函数的
3. 函数返回值的类型也称为函数的类型,因为如果函数名前面返回值类型和函数执行体中的return表达式中表达式的类型不同的话,则最终函数的返回值的类型以函数名前的返回值的类型为准 函数的分类
有参函数 和 无参函数 有返回值 和 无返回值 库函数 和 自定义函数 普通函数 和 主函数
一个函数必须有且只有一个主函数 主函数可以调用普通函数, 普通函数不能调用主函数, 普通函数可以相互调用,
主函数是函数的入口,也是程序的出口 注意的问题
函数的调用和函数的定义的顺序
如果函数调用写在了函数定义的前面,则必须加函数前置声明:
1. 告诉编译器即将可能出现的若干个字母代表的
是一个函数
2. 告诉编译器即将可能出现的若干个字母代表的
函数的形参和返回值的具体情况 3. 函数声明是一个语句,末句必须加分号 4. 对库函数的声明是通过 # include<库函数所在的
文件的函数> 形参和实参
个数相同 位置一一对应 数据类型必须相互兼容 常用的系统函数 专题:
递归