C语言-07C语言函数

这篇博客详细介绍了C语言中的函数使用,包括头文件的条件预编译、函数定义与调用、参数匹配原则以及函数的值传递特性。讨论了函数参数为数组时如何修改实参值,并给出了字符串合并和拷贝的自定义函数示例。同时,提到了多文件编译和#define宏替换的作用。最后,深入探讨了函数递归的概念,包括递归终止条件、递归实现的10进制转二进制和16进制、斐波那契数列以及递归求字符串长度,指出递归的优缺点。
摘要由CSDN通过智能技术生成

函数
头文件的使用
#include就是简单的文本内容替换
#define(宏)就是简单的文本替换


头文件ab.h

#ifndef _AB_//如果没有_AB_这个宏,那么就编译#endif之间的这些代码,如果有的话就不编译。
#define _AB_//具体宏的名字是自定义的

int max();
int add();

#endif

防止多次include的同一个头文件的时候,重复预编译头文件内容。
#ifndef的意思就是条件预编译,如果#ifndef后面的条件成立,那么久预编译从#ifndef来时到#endif之间的代码,否则不回去预编译这段代码。


C语言的方法:调用库函数,用户自定义函数。


用户自定义的函数
函数的定义:

#include <stdio.h>

int max(int x,int y);//函数的声明

int main(int argc,char *argv[]){
   
    int a =max(35,56);//函数的入口,35,56为实参,实参可以是变量也可以是常量或者是表达式(35-1,56-2)。
    printf("max=%d\n",a);
    return 0;
}
//用户自定义函数体
int max(int x,int y){
   //int x,int y为形参,形参必须是变量,不能是常量或表达式)。
    int c=(x>y)?x:y;
    return c;//返回值,返回值的类型一定要和函数定义类型统一。
}

-如果函数体写在主函数后面,在main()函数必须声明。函数体在main()前面,是提前定义,不用声明。

-实参和形参类型必须严格匹配。

-函数可以没有返回值,函数的返回类型是void

-如果C语言一个函数没有明确的表明函数的返回类型,那么函数的返回类型就是int,(劲量写出来)

-在c语言中,实参与形参的数据传递是“值传递”,即单向传递,只由实参传递给形参,而不能由形参传递给实参。

#include <stdio.h>

void test(int x);

int main(int argc,char *argv[]){
   
    int value=10;
    test(value);
    printf("value=%d\n",value);
    return 0;
}
void test(int x){
   
    x++;
}
/Users/Xx/CLionProjects/Struct1/cmake-build-debug/Struct1
value=10

Process finished with exit code 0

在这里插入图片描述

如果函数的参数是数组:

#include <stdio.h>

void test(char s[]);

int main(int argc,char *argv[])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值