IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言函数-详解(一) -> 正文阅读

[C++知识库]c语言函数-详解(一)

数学中我们常见到函数的概念,但是你真的了解c语言的中的函数吗?

在c语言中有两类函数:库函数 ,自定义函数。

1.1库函数

printf? strlen 等,这两个函数我们都不陌生吧,再有一点c语言基础的情况下,c语言设计者在早期,就考虑到一些可能大量使用的方法,比如打印功能,求字符串长度,假如不在前期对这些大量使用的函数进行提前编写封装,那么我们可能就要自己去写这些方法来完成相应的功能。

提高复用性,效率,可移植性,推荐网站www.cplusplus.com来学习库函数

c语言常用库函数:)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ??

c语言常用函数库
I/O函数(input/output? ?printf scanf getchar putchar
字符串操作函数(strlen strcmp strcpy strcat)
字符操作函数? ? (tolower touppper...)
内存操作函数(memcpy memset memmove memcmp)
时间日期函数(time...)
数学函数(sqrt abs fabs pow)
其他库函数

*使用库函数必须包含#include

1.2自定义函数

如果库函数能干所有事情,那么我们程序员岂不是要失业了,所以对于我们程序员来说更加重要的是自定义函数。自定义函数和库函数一样,有函数名,返回类型,和和函数参数

函数的组成

//写一个函数求两个数中较大值
get_max(int x,int y)//定义函数,未定义直接调用会报错,x,y为形参
{
    return(x > y ? x : y);
}

int main()
{
int a =0;
int b=0;
scanf("%d%d", &a,&b);

//求两个数的较大值
int max = get_max(a,b);//a,b为实参
printf("max= %d\n",max);

return 0;
}

写一个函数交换两个变量

void Swap(int* px,int* py)
{
int z = 0;
z = *px;
*px = *py;
*py = z;
return;
}

int main()
{
int a = 10;
int b = 20;

printf("交换后:a=%d b=%d\n",a,b);

Swap(&a,&b);

printf("交换后:a=%d b=%d\n",a,b);
return 0;
}

大家可以看看我们采取了传址方式,用到了一点指针的概念,为什么要这么操作呢,在这里我先简单回答下假如我们用传值的形式(把a,b的值直接赋给函数里的x,y)那么会导致在函数中他会新在内存中创建两个空间,来放置复制过来的值,经过经过交换并没有对ab的值进行交换,不符合我么设计函数的预期

2.1函数参数

实际参数

真实传给函数的参数;

可以是,常量,变量,表达式,函数等;

无论是何种类型的量,必须有确定的值

形式参数

指函数名括号中的变量

调用后进行消除,不占用内存空间

未调用时不占用内存空间

2.2函数的调用

传址调用,传值调用两种,字面意思当调用时传递的分别是地址,和数值。

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

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

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

正如上面我们列举的交换两个数值的函数调用就用到了传址调用,有过基础的朋友应该就发现对参数给了取地值&,也用到了指针的概念,指针我们在之后的章节会详细阐述这里一笔带过。


  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:32:07  更:2021-07-23 10:32:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 18:20:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码