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语言]函数

目录

1.函数是什么

2.库函数?

?3.自定义函数

写一个函数可以交换两个整形变量的内容?

首先是经典出错写法

?然后是进行一个指针概念的复习

最后通过指针变量确定a,b的地址,保证改变的值能够放入

4.函数的参数

实际参数(实参)

?形式参数(形参)?

5.函数的调用?

传值调用

传址调用

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

函数的嵌套调用

函数的链式访问

7.函数的声明和定义

函数的声明

函数的定义


1.函数是什么

维基百科中对函数的定义:子程序

在计算机科学中,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组成。

它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。

2.库函数?

许多基础功能在开发的过程中每个程序员都可能用的到, 为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

如何学习库函数——多使用查询工具,例如:MSDN

常用库函数
IO函数printf;scanf;getchar;putchar
字符串操作函数strcmp;strlen
字符操作函数toupper
内存操作函数memcpy;memset;memcmp
时间/日期函数time
数学函数sqrt
其他库函数.......

?3.自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数

函数的组成:

ret_type fun_name(para1, * )

{

? ? ? ? statement;//语句项—— ——函数体

}

ret_type 返回类型

fun_name 函数名

para1 ? ?函数参数

写一个函数可以交换两个整形变量的内容?

首先是经典出错写法

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

void change(int x, int y)//函数返回类型的地方写成void,表示这个函数不返回任何值,也不需要返回
{
	int z = 0;
	z = x;
	x = y;
	y = z;

}

int main()
{
	int a = 10;
	int b = 20;
	//函数的调用
	change(a, b);
	printf("%d %d", a,b);
	return 0;
}

?反思:

a的地址——0x00affeb8? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b的地址——0x00affeac

这里虽然a和b的值分别传递给了x和y,但x、y也建立了独立的空间,与a,b使用的不是同一地址——x和y交换了但与a和b没关系

x的地址——0xxaffdd4? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y的地址——0x00affdd8

?然后是进行一个指针概念的复习

//指针
int main()
{
	int a = 10;//4个字节的空间
	int* pa = &a;//pa是一个指针变量
	*pa = 20;

	return 0;
}

最后通过指针变量确定a,b的地址,保证改变的值能够放入

void change(int *pa, int *pb)//函数返回类型的地方写成void,表示这个函数不返回任何值,也不需要返回
{
	int z = 0;
	z = *pa;
	*pa = *pb;
	*pb = z;

}

int main()
{
	int a = 10;
	int b = 20;
	//函数的调用
	change(&a, &b);
	printf("%d %d", a, b);
	return 0;
}

4.函数的参数

实际参数(实参)

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

如上:change(a,b)——函数调用过时的实际参数

?形式参数(形参)?

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

如上:void change(int x,int y)——函数定义时的形式参数

?change 函数在调用的时候, x , y 拥有自己的空间,同时拥有了和实参一模一样的内容。 所以我们可以简单的认为:形参实例化之后其实相当于实参的一份临时拷贝?

5.函数的调用?

传值调用

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

传址调用

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

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

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

函数的嵌套调用

函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的

函数可以嵌套调用,但是不能嵌套定义

#include <stdio.h>
void new_line()
{
 printf("hehe\n");
}
void three_line()
{
    int i = 0;
 for(i=0; i<3; i++)
   {
        new_line();
   }
}
int main()
{
 three_line();
 return 0;
}

函数的链式访问

把一个函数的返回值作为另外一个函数的参数

int main()
{
	printf("%d", printf("%d", printf("%d", 43)));//printf函数返回在屏幕上打印的字符数
	return 0;
}

结果为4321?

7.函数的声明和定义

函数的声明

一般出现在函数的使用之前,要满足先声明后使用

函数的声明一般要放在头文件之中

函数的定义

是指函数的具体实现,交待函数的功能实现

一般形式,以加法为例:

add.h(放置函数的声明)——int Add(int x, int y);

add.c(函数的定义——放置函数的实现)——#include "add.h"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int Add(int x, int y)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return x+y;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

test.c(函数调用)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:17:43  更:2021-12-24 18:18:58 
 
开发: 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年11日历 -2024/11/24 13:43:42-

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