千家信息网

C语言函数如何使用

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,今天小编给大家分享一下C语言函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧
千家信息网最后更新 2025年01月19日C语言函数如何使用

今天小编给大家分享一下C语言函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、函数的分类

1.库函数

库函数是C语言基础库为了方便程序员进行软件开发而提供了一系列的函数,可以支持可移植性和提高程序的效率。

⚠️ 注意:库函数需要引头文件。

例如:strlen函数的头文件是

2.自定义函数

自定义函数和库函数一样,有函数名、返回值类型和函数参数。但是不一样的是,这些都是我们自己来设计,这给程序员一个很大的发挥空间

⚠️注意:这个函数是在库函数之外的,是不需要引头文件的。

3.库函数的分类

  • IO函数 : printf 、scanf 、getchar、putchar

  • 字符串操作函数 :strcmp、strlen

  • 字符操作函数:toupper

  • 内存操作函数:memcpy、memcmp、memcet

  • 时间/日期函数:time

  • 数学函数:sqrt、pow

  • 其他库函数

二、函数调用

1.传值调用

函数的形参和实参分别占有不同的内存块,对形参的修改不会影响实参

#includevoid swap(int x, int y){        int z = 0;        z = x;        x = y;        y = z;}int main(){        int a = 10;        int b = 20;        printf("交换前=%d %d\n", a, b);        swap(a, b);        printf("交换后=%d %d\n", a, b);        return 0;}

2.传址调用

传址调用是把函数外部创建变量的内存地址传递地函数参数的一种调用函数方式。

这种操作可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。

定义指针变量,以通过访问地址的方式来交换a和b的值。

函数定义部分的参数接收到的是变量a和变量b的地址,并通过地址来改变他们两个的值。

#includevoid swap(int * pa, int * pb ){        int z = 0;        z = *pa;        *pa = *pb;        *pb = z;}int main(){        int a = 10;        int b = 20;        printf("交换前=%d %d\n", a, b);        swap(&a, &b);        printf("交换后=%d %d\n", a, b);        return 0;}

三、函数的声明

告诉编译器有一个函数,参数是什么?返回类型什么?但是具体是不是存在无关紧要。

函数的声明一般出现在函数的使用之前,要满足先声明后使用。

函数的声明一般要放在头文件中。

对函数声明

#includeint main(){    int a = 10;    int b = 20;    //函数的声明 - 告知    int Add(int, int);    int c = Add(a, b);    printf("%d\n", c);    return 0;}//函数的定义int Add(int x, int y){    return x + y;}

四、函数定义

函数的定义是指函数的具体实现,交代函数的功能实现 。

定义是一种更强有力的声明

#includeint add(int a, int b)//函数定义{        return a + b;//返回a + b的值}int main(){        int a = 0;        int b = 0;        scanf("%d %d", &a, &b);        int c = add(a, b);//函数调用 - 计算a + b的值        printf("%d\n", c);        return 0;}

五、函数的参数

1.形式参数(形参)

函数定义部分的参数是形参

2.实际参数(实参)

函数调用部分的参数是实参

六、函数的练习

1.用函数求两个整数的较大值

难易程度:⭐

#include//求最大值 - 函数定义 - 传参int get_max(int score_one, int score_two)//函数形参{        //如果score_one大于score_two就返回一个score_one的值        //否则就返回score_two的值        //返回的值即为最大值        return score_one > score_two ? score_one : score_two;}int main(){        int score_one = 0;        int score_two = 0;        scanf("%d %d", &score_one, &score_two);        //求最大值函数 - 调用 - 并传参        int max = get_max(score_one, score_two);//函数实参        printf("max=%d\n", max);        return 0;}

2.用函数打印100~200之间的素数

难易程度:⭐⭐

素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。

#includeint is_prime(int i){        int j = 0;        for (j = 2; j < i; j++)//产生除了1和它本身的自然数        {                //拿i试除除了1和它本身的自然数                if (i % j == 0)//整除进入语句                {                        return 0;//返回0                }        }        //i与所有除了1和它本身的自然数试除之后,返回的值就是素数        return 1;//返回1,就是返回素数的值}int main(){        int i = 0;        int count = 0;//统计素数的个数        for (i = 100; i <= 200; i++)//产生100-200之间的数字        {                if (is_prime(i) == 1)//如果返回值等于1就进入语句                {                        //打印的i就是素数                        printf("%d ", i);                        count++;//每一次打印i,count++                }        }        printf("\ncount = %d\n", count);        return 0;}

3.用函数打印1000~2000之间的闰年

⚠️ 注意

  • 能被4整除,并且不能被100整除

  • 能被400整除

难易程度:⭐⭐

#includeint is_leap_year(int n)//打印1000-2000素数的实现{    if (n % 4 == 0 && n % 100 != 0)//如果能被4整除,并且不能被100整除就进入语句    {        return 1;//返回1就是返回素数    }    else if (n % 400 == 0)//如果能被400整除就进入语句    {        return 1;//返回1就是返回素数    }    else    {        return 0;//返回0就不是素数    }}int main(){    int i;    int count = 0;//统计闰年的个数    for (i = 1000; i <= 2000; i++)//产生1000-2000之间的数    {        if (is_leap_year(i) == 1)//如果返回的值等于1就进入语句        {            printf("%d ", i);//打印i就是打印闰年            count++;//闰年的个数++        }    }    printf("\ncount = %d\n", count);    return 0;}

以上就是"C语言函数如何使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0