往期链接:
目录
导入静态库:#pragma comment(lib,"库名")
函数的嵌套调用
函数不能嵌套定义,但可以嵌套调用
函数的链式访问
函数的返回值可以作为另外一个函数的参数
printf("%d",printf("%d,printf("%d“,43)));//output:4321
printf的返回结果为被写入的字符个数,详情见下图:

函数的声明与定义
函数必须先声明后使用
函数声明
- 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么,但是具体是不是存在,无关紧要。
- 函数的声明一般出现在函数的使用之前。要满足先声明后使用。
- 函数的声明一般要放在头文件中的。
函数的定义
函数的定义是指函数的具体实现,交待函数的功能实现。
示例代码:
//函数的声明与定义
int main(){
int a = 10;
int b = 20;
int addNum(int x,int y);//函数的声明,函数的声明一般放在头文件里
printf("num = %d\n",addNum(a, b));//函数的使用
}
/**
函数的定义
*/
int addNum(int a, int b){
return a+b;
}
导入静态库:#pragma comment(lib,"库名")
函数递归
程序调用自身就叫做递归
递归的两个重要条件:
- 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
- 每次递归调用之后,越来越接近这个限制条件。
递归的应用 :编写函数,求字符串长度,但不允许创建临时变量
int getStrLength(char * arr){//传参进来是地址上的数
if (*arr != '\0'){
return getStrLength(arr+1)+1;
}else{
return 0;
}
}
int main(){
char arr[] = "bit";
int length = getStrLength(arr);//数组名本身就是第一个元素的地址
printf("length = %d\n",length);
return 0;
}