四、数组
一维数组定义的三种方式:(1)数据类型 数组名[数组长度];(2)数据类型 数组名[数组长度]={值1,值2…};(3)数据类型 数组名[]={值1,值2…};
数组特点:放在一块连续的内存空间中,数组中每个元素都是相同数据类型
数组值如果在初始化数据时候没有全部填写完,会用0来填补剩余数据
一维数组名称的用途:(1)可以统计整个数组在内存中的长度:整个数组占用内存空间sizeof(arr)除以每个元素占用内存空间sizeof(arr[0])即可得到数组中元素个数(2)可以获取数组在内存中的首地址,数组中第一个元素地址为(int)&arr[0]
注意数组名是常量,不可以进行赋值操作
一维数组的典型例子是寻找数组最大值、数组元素倒置、冒泡排序
二维数组定义的四种方式:(1)数据类型 数组名[行数][列数];(2)数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};(3)数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};(4)数据类型 数组名[ ][列数] = {数据1,数据2,数据3,数据4}; 其中第二种更直观具有可读性
二次for循环:外层循环打印行数,内层循环打印列数
二维数组名称用途:(1)可以查看内存空间大小 (2)可以查看二维数组的首地址
五、函数
函数的作用:将一段经常使用的代码封装起来,减少重复代码
一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能
函数的定义写法为:返回值类型 函数名 (参数列表){ 函数体语句 return表达式}
函数的调用:使用定义好的函数 用法:函数名(参数)
函数定义里小括号内称为形参,函数调用时传入的参数称为实参
值传递:函数调用时实参将值传入给形参。 值传递时,如果形参发生改变,并不会影响实参
如果函数不需要返回值,声明的时候可以写void,返回值不需要的时候,也可以不写return
函数的常见样式:无参无返、有参无返、无参有返、有参有返
函数的声明:告诉编译器函数名称及如何调用函数,函数的实际主体可以单独定义,eg: void swap(int a);
函数的声明可以多次,但是函数的定义只能有一次
函数的分文件编写:让代码结构更加清晰
函数分文件编写一般有4个步骤:(1)创建后缀名为.h的头文件(2)创建后缀名为.cpp的源文件(3)在头文件中写函数的声明(4)在源文件中写函数的定义