1.数组作为函数参数时
1)定义的数组名仅代表其首元素的地址,所以在主调函数中定义的数组其所包含的数组容量,只能在主调函数中计算。当我们需要使用时可以将数组的容量在主函数中计算完毕,然后作为参数赋值给被调调函数。
2)被调函数只提供算法,通常没有要求就不去打印。
3)因为数组作为函数参数时,是直接引用的首元素地址,从而相当于在数组本身进行计算,这点有别于数据进行的 “值传递”。
二维数组
(去掉变量名就是数据名)
不能通过传参 计算行数,因为传参传的是首元素地址,与一维数组不能在被调函数内计算元素个数原因相同。但是二维数组的列数可以在被调函数中被计算
2.字符型数组做参数
在用 strlen ,strcpy,strcat,strcmp记得调用(#include<string.h>)
1)字符型数组参数,不需要元素个数,因为字符型数组以 ‘\0’ 做结尾。
2)数组中被调函数的数组名代表八位的地址,与主调函数的变量名所代表的整个数组不同。
(1) 对于定义一个函数来说需要返回的用int 型(return),不需要返回的用void型
二维字符型数组
(去掉变量名就是数据名)
不能通过传参 计算行数,因为传参传的是首元素地址,故 行数需要在主函数内计算,再通过传参传到被调函数。
对于编写程序的一些心得:
1)花括号,每次括完整再编写程序,以免遗忘。
2)函数调用时,形参与实参的数据类型必须相同。
3)在定义完较长的句子时,记得加分号,尤其是数组
4)定义数组时,从二维数组开始,高维数组的元素个数不能省略。
5)定义数组时 方括号不能省略。
6)数组传参的时候一般只需要变量名,即首元素地址。
7)定义完某个变量时,有的需要赋初值,比如求和sum时,如果不给sum一个初值最终的结果会是一个随机数,定义完变量,对于那些值需要初始化(后期可以直接用),不需要初始化(后面会定义或赋值,比如for循环中)。