函数那些事(c语言基础)上

函数那些事(c语言基础)上,第1张

 

目录

👍一、函数是什么

👍二、函数的分类

👍三、学习一个库函数

👍四、自定义函数

👍五、函数的参数

👍六、函数的调用

👍七、函数的嵌套调用和链式访问


👍一、函数是什么

是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。


👍二、函数的分类

1. 库函数

2. 自定义函数


👍三、学习一个库函数

我们知道在我们学习C语言编程的时候,总是会重复多次使用同一个功能,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

可以从www.cplusplus.com学习库函数

这里我们以strcpy为例来学习

我们可以从网站上看到这样一个界面

我们可以把它拆成几个方面看


1.头文件

 

在左侧一栏可以看到,所以在使用strcpy这个函数时要引头文件


 2.函数参数

 可以得到函数的返回类型、参数类型


3.函数的内容

于是我们可以得知,strcpy这个函数的功能是

把第二个参数指针指向的字符串赋给第一个


知道了以上三点,我们就可以尝试使用strcpy

#include 
#include 
int main()
{
    char str1[] = "**************";
    char str2[] = "hello world";
    strcpy(str1, str2);
    printf("%s", str1);
    return 0;
}

 运行结果

 这样,我们strcpy函数最基本的用法就学会了


👍四、自定义函数

库函数很多,但也不能解决所有问题

所以自定义函数实现需求就显得尤为重要

函数的组成:

 

 我们可以举一个实现加法的例子

#include 
int Add(int x ,int y)
{
    return x + y;
}
int main()
{
    int a = 10;
    int b = 20;
    int c = Add(a, b);//把函数Add的返回值放在c里
    printf("%d", c);
    return 0;
}

 结果输出30


👍五、函数的参数

1.实际参数(实参)

真实传给函数的参数,叫实参。

实参可以是:常量、变量、表达式、函数等。

无论实参是何种类型的量,在进行函数调用时,

它们都必须有确定的值,以便把这些值传送给形 参。

2.形式参数(形参) 

形式参数是指函数名后括号中的变量,

因为形式参数只有在函数被调用的过程中才实例化(分配内 存单 元),所以叫形式参数。

形式参数当函数调用完成之后就自动销毁了。

因此形式参数只在函数中有效。


当实参传给形参的时候,形参是实参的一份临时拷贝

对形参的修改不会影响实参


 所以x是新创建的一块空间,而不是直接使用a的空间


👍六、函数的调用

1. 传值调用

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

2.传址调用

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

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

#include 
void Add1(int x,int*y)//传来的参数类型不同,接收的类型也不同
{
    x  += 2;
    *y +=2;
}
int main()
{
    int a = 10;
    int b = 10;
    Add1(a, &b);
    //对a传值调用
    //对b传址调用,把b的地址传给函数
    printf("a=%d\nb=%d ", a,b);
    return 0;
}

结果如下

a=10
b=12

由此可见

传址调用会改变原值

传值调用不会


👍七、函数的嵌套调用和链式访问

先上例子

int main()
{
    printf("%d",printf("%d", printf("43")));
    return 0;
}

运行结果是啥???

这里可能会有点晕,但别着急

我们可以先深入了解一下printf这个函数,还是在原来的网站

 

 结合到一起,我们可以知道,printf会返回打印长度的整型

 

所以结果是

4321

函数基础 (上) 就到此,因为作者水平有限,欢迎提出意见或建议

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/713785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存