函数详解:包括库函数和自定义函数,函数的参数及调用,声明及定义,嵌套使用和链式访问

本文介绍了C语言中的函数概念,包括库函数(如printf、strcpy等)和自定义函数的创建与使用。讨论了函数参数、调用方式(传值与传址)、函数嵌套和链式访问,以及函数声明和定义的重要性。通过示例代码,阐述了如何在实际编程中应用这些知识。
摘要由CSDN通过智能技术生成

🌹作者:小泽同学~
📝csdn个人主页:小泽同学~
📝码云:classmate-mzq
🤟motto:己所不欲,勿施于人and勿以善小而不为,勿以恶小而为之
————————————————

前言:不出意外的话,我将在这里记录我的大学编程学习。
因为我也是小白,所以如果大家看到问题的话,可以直接在下面评论或者加我v私我,感谢大家!
个人v:m0106gm(添加的话麻烦备注csdn)
祝我们前程似锦

本人使用的开发环境工具是vs2022

1. 函数是什么

数学中我们常见到函数的概念,我们熟悉的数学中的函数f(x)=x2+2x+3,x值不同f(x)也就跟着变化,f(x,y)=2x+y也同理。而计算机也有函数,也能够进行这样的运算,但是你了解C语言中的函数吗?

维基百科中对函数的定义:子程序
在计算机科学中,子程序(即函数)是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。

C语言中函数的分类:

  1. 库函数
  2. 自定义函数

2. 库函数

为什么会有库函数?

  1. 我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想
    把这个结果打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能:将信息按照一定的格
    式打印到屏幕上(printf)。
  2. 在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)。
  3. 在编程中我们也计算,总是会计算n的k次方这样的运算(pow)。

像上面我们描述的基础功能,它们不是业务性的代码。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

简单的总结,C语言常用的库函数都有:
IO函数 (即输入输出函数:printf,scanf ,getchar,putchar等)
字符串操作函数 (strlen,strcmp,strcpy等)
字符操作函数 (toupper,tolower等)
内存操作函数 (menset,mencpy等)
时间/日期函数 (time等)
数学函数 (sqrt,pow等)
其他库函数

下面我们来学习几个库函数学会函数的使用方法

  1. strcpy:字符串拷贝函数
  • 作用:将一个字符串的内容拷贝到另一个字符串里面
  • 函数原型:char * strcpy ( char * destination, const char * source )【返回类型和参数均为指针类型,第一个参数是目标字符串,第二个字符串是源头字符串,即把第二个字符串的内容拷贝到第一个字符串里面去】
  • 所在头文件:srting.h
//代码1
#include <stdio.h>
#include <string.h>
int main()
{
   
	char arr1[20] = {
    0 }; 
	char arr2[] = "i love you!";
	strcpy(arr1, arr2);  //把arr2的内容拷贝到arr1中
	printf("%s", arr1);  
	return 0;
}

在这里插入图片描述

//代码2
#include <stdio.h>
#include <string.h>
int main()
{
   
	char arr1[] = "i love myself";
	char arr2[] = "i love you!";
	strcpy(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

在这里插入图片描述
代码2表明,字符串拷贝的时候,\0也会被一同拷贝

使用strcpy的注意事项:目标字符串的大小一定要比源头字符串的大小大,否则会报错

  1. pow:求幂函数
  • 作用:求一个数字的N次方
  • 函数原型:double pow (double base, double exponent)【返回类型和参数均为双精度浮点型,第一个参数是是底,第二个参数是幂】
  • 所在头文件:math.h
#include <stdio.h>
#include <math.h>
int main()
{
   
//因为2的10次方是整数,所以也可以用int型接受,不过会有警告
	int a = pow(2, 10);  //求2的10次方 
	printf("%d", a);
	return 0;
}

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
#include <math.h>
int main()
{
   
	double a = pow(2, 10);
	printf("%lf", a);
	return 0;
}

在这里插入图片描述

  1. menset:内存设置函数
  • 函数原型:void * memset ( void * ptr, int value, size_t num )【返回类型为指针类型,第一个参数是指针类型,第二个参数是整型,第三个参数是无符号整型,即正整数】
  • 作用:将ptr所指向的内容的内存的前num个字节变成value
  • 所在头文件:string.h
#include <stdio.h>
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小泽同学~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值