返回

c语言 -- 函数

发布时间:2023-02-18 00:55:52 345

分类

库函数

自定义函数

参考手册(网站) ​​​www.cplusplus.com​

​​https://en.cppreference.com/w/​​

中文版​​https://zh.cppreference.com/w/​​ c的库函数有很多,但学习方法都差不多,下面举几个例子帮助理解

离线文档就用zeal,在zeal里面下载也是官网的

strcpy - string copy

strcpy(需要拷贝的目标,被拷贝内容的来源); - char* strcpy( char* dest, const char* src );

#include 
#include

int main()
{
char arr1[] = "Hello";//source
char arr2[20] = {0};//destination
strcpy(arr2, arr1);
printf("%s\n", arr2);
//strcpy - string copy - 字符串拷贝
//strlen - string length -字符串长度
return 0;
}
memset - memory(内存) set(设置)

memset( void *dest, int ch, size_t count );//memset(目标地址,值,更改长度)

#include 
#include

int main()
{
char arr[] = "Hello world";
memset(arr, '*', 5);//memset(目标,值,更改长度)
printf("%s\n", arr);
return 0;
}

函数的组成

ret_type fun_name(paral, * )
{
statement://函数体
}
ret_type 返回类型
fun_name 函数名
paral 函数参数

举个例子,写一个函数找出两个数的较大值

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
//定义函数
int get_max(int x,int y)//传值调用
{
if (x > y)
{
return x;
}
else
return y;
}
int main()
{
int a = 10;
int b = 20;
int max = get_max(a, b);
printf("%d\n", max);
int max1 = get_max(100, 200);
printf("%d\n", max1);
return 0;
}

对两个数进行交换

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include

//错误的方法
int Swap1(int x, int y)//传值调用
{
int z = 0;
z = x;
x = y;
y = z;
return x, y;
}
//正确的方法
void Swap2(int* pa,int* pb)//传址调用
{
int tmp = 0;
tmp = *pa;//解引用a,直接利用a的地址进行更改
*pa = *pb;
*pb = tmp;
}

//将两个数利用函数的形式进行交换
int main()
{
int a = 10;
int b = 20;
printf("a=%d b=%d\n", a, b);
Swap2(&a,&b);//传a,b的地址到函数Swap2的值中
printf("a=%d b=%d\n", a, b);
return 0;
}
传值调用:(不改变外部变量时使用)

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

传址调用:(改变外部变量时使用)

传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量

实际参数(实参):

真实传给函数的参数,叫实参。实参可以是:常量,变量,表达式,函数等。无论实参是何种类型的量,在进行调用时,他们都必须由确定的值,以便把这些值传送给形参。

形式参数(形参):

形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就睡自动销毁了,因此形式参数只在函数中有效。

上面Swap1和Swap2函数中的参数x,y,px,py都是形式参数。在main函数中传给Swap1的num1,num2和传给Swap2函数的&num1,&num2是实际参数。

形参实例化之后,其实相当于实参的一份临时拷贝

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

嵌套调用
链式访问

链式访问

int main() {
int len = 0;
//1
len = strlen("abc");
printf("%d\n", len);
//2,l链式访问
printf("%d\n", strlen("abc"));
return 0;
}

函数声明和调用

一般在公司里写函数都会将函数的定义和声明写在另一个文件中,那样就可以多人合作提高效率 在未来写工程时就分开写: 分别创建一个头文件和源文件用来声明函数 在主函数中调用

c语言 -- 函数_#include

函数声明:

1.告诉编译器有一个函数叫什么,参数是什么,返回类型是什么,但具体是不是存在,无关紧要 2.函数的声明一般出现在函数的使用之前,要满足先声明后使用 3.函数的声明一般放在头文件中

函数定义:

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

















特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线