C语言知识小结(二)
宏
不带参数的宏定义:
#define 宏名 字符序列
#define FALSE 0
带参数的宏定义:
#define 宏名(形参表) 字符序列
#define MAX(a,b) ( (a) > (b) ) ? (a) : (b)
取消宏定义:
#undef 宏名
带参宏和内联函数
一些语句比较短小,功能比较简单的函数,可以用宏定义实现,提高效率。
宏定义只是替换,没有调用开销(栈空间的使用),函数有开销。
函数会检查你的参数列表和返回值类型,而宏定义没有类型,也就不会检查
函数
函数三要素:返回值、参数列表、声名。
函数的定义
int main(int argc , char *argv[ ])
main 函数作为整个程序的入口,返回值给了它的父进程。
argc表示参数个数 , argv[]表示参数列表
函数的声明
int func1(int a ,int b);
int func2(int a ,int b);
表示含有此函数
函数调用
int main(void)
{
int x=1,y=2;
func1(x,y); // 调用func1函数
}
行缓冲
输出行缓冲:
以\n为输出结束标识符,若没有该换行符,则将一直运算至缓冲区填满后或运算结束后一起输出。
输入行缓冲:
以\n为输入结束标识符,若不键入换行符,则一直等待输入。
精度转换
默认低精度向高精度转换
高精度向低精度转换会丢失数据
0代表数字零
'/0'代表字符串的结束
'0'代表字符0
strcmp strcpy strcat
a,b两组字符串
strcmp ( a , b ) 将两个字符串进行对比,相等返回值为0,a大于b返回值正数,a小于b返回值为负
strcpy ( a , b ) 将字符串b复制到字符串a上
strcat ( a , b ) 将字符串b追加在字符串a后面
递归函数的使用
1、求阶乘
2、求fibo数列
迭代函数的使用
求1-100的和