声明与定义
以下第一排为函数声明,后者是对一个函数的定义。
void为一个空的类型或者参数。
定义有参函数如下:
传参方向:
自右向左。如add(i,j)在传参时先传 j 再传 i。但如add(i,i++)此类时,应考虑++运算符在一个语句结束后再++,所以原意等效为add(i,i)
linux系统中代码的五个工作区:
1.栈区(stack):函数调用后返回地址内所有局部变相及形参都在这个区。
2.堆区
3.字符串常量区:如“Hello”字符串在这个区
4.静态区
5.代码区
值传递,不能改变实参i的值。
指针传参(可以通过指针改变实参的值)
如下:
虽然在定义形参时没有声明是一个指针变量,但形参是对数组的的地址进行调用,所以会影响实参的值。
一维数组与二维数组在函数参数中不同的写法
在不适用指针声明下,对一维与二维数组形参的声明是不一样的,如下两个函数:
一维数组
二维数组
此时,想要进行此函数调用的数组必须满足第二个维度为4,即与函数匹配
函数递归
基本内容
无休止导致栈溢出
一些递归函数写法:
n的阶乘:
输出第n个菲波那切数列的值
数组函数算法
以下为部分二维数组算法: