C语言学习笔记

175 阅读1分钟

​「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

C语言的函数分类:

1.库函数:

        1.1 IO函数

        1.2 字符串操作函数

        1.3 字符操作函数

        1.4内存操作函数

        1.5时间/日期函数

        1.6数学函数

        1.7其他库函数

        如何学习使用其他不熟悉的库函数呢?

        搜索网站:[cplusplus.com - The C++ Resources Network]

        通过对strcpy的解释的学习,我便可以写出并运用这个函数

 是不是学会了,咱们浅试一下~

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "bit";
	char arr2[20] = "#####";
	strcpy(arr2, arr1);
	printf("%s\n", arr2);
	return 0;
}

如何学会使用库函数?

需要全部记住吗?漏!只需要运用查询工具即可:

MSDN(Microsoft Developer Network)

[cplusplus.com - The C++ Resources Network]

en.cppreference.com/

2.自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是需要我们自己来设计。

函数的组成:

ret_type fun_name(paral, *)
{
statement;//语句项
}
ret_type 返回类型
fun_name 函数名
paral     函数参数

浅试一下吧:

求最大值的函数

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("max = %d\n", max);
	return 0;
}

再写一个函数吧

交换值的函数:

N707{))RH85ETRZ)1~~FJ$V.png

这个代码交换了a和b的值了吗?

int main()
{
	int a = 10;
	int* pa = &a;//pa指针变量
	*pa = 20;//解引用操作符
	printf("%d\n", a);
	return 0;
}


void Swap(int* pa, int* pb)//void表示空,即没有返回值
{
	int tmp = 0;
	tmp = *pa;
	*pa = *pb;
	*pb = tmp;
}
int main()
{
	int a = 10;
	int b = 20;
	Swap(&a, &b);
	printf("a=%d,b=%d\n", a, b);
	
	return 0;
}

知识点来咯:

形参(形式参数)

在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参

实参(实际参数)

函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参

上面的函数中的参数x,y,pa,pb 都是形式参数, 在main函数中传给swap函数的num1和num 2都是实际参数

注:当实参传给形参的时候,形参其实是实参的一份临时拷贝,对形参的修改是不会改变实参的。

函数的调用:

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

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

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

 传值调用

~O2A}_Z@5K@FLNP`PPPW~U.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/20ffad87f4ef409fafe7941543bc4594~tplv-k3u1fbpfcp-watermark.image?)
 传址调用
![`BSRQU}KSKHELS56BR80RA.png