函数
函数名:首字母大写 eg: Add
多个单词:每个单词首字母大写 eg: AddTwoNum/Add_Two_Num(驼峰式命名)
int Add(int a, int b);//函数的声明
int Add(int a, int b)//列表名
{
函数体
}
库函数
IO函数
字符串操作函数
字符操作函数
内存操作函数
时间日期函数
数学函数
其他库函数
- strcpy
char *strcpy(char * destination,const char *source)
char * strcpy(char * dst, const char * src)
{
char * cp = dst;
assert(dst && src);
while( *cp++ = *src++)
{}
return( dst );
}
返回值,为了实现链式表达式
- memset
void *(void *ptr,int value,size_t num)
char *a="abcdefg";
void *p=memset(a,'g',4);//char *p=(char *)memset(a,'g',4);
printf("%s",p);//输出ggggefg
- strcat
拼接字符串
自定义函数
-
参数:
-
个数匹配
-
参数类型匹配
-
实参可以是常量,变量,表达式、函数等
-
返回值:
-
如果有返回值,必须返回一个值。否则有警告
返回值类型也需要匹配 -
如果没有返回值,类型为void
-
形参的改变不影响实参的改变(按值传递)
尽量避免在子函数中打印.
函数的声明与定义
头文件:add.h(放置函数的声明)
#ifndef__ADD_H__//防止头文件重复引入
#define——ADD—H——
//#pragma once
函数的声明
#endif
add.c:函数的实现(放置函数的实现)
test.c
#include"add.h"
函数递归
递归满足两个条件:
-
程序调用自身
-
有一个趋于终止的条件
青蛙跳跳板代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int JumpFloor(int n)
{
if (n == 1)
return 1;
else if (n == 2)
return 2;
return JumpFloor(n - 1) + JumpFloor(n - 2);
}
int main()
{
int a = JumpFloor(10);
printf("%d\n", a);
return 0;
}