C语言修炼之路一朝函数思习得 模块思维世间生下篇

目录
  • (壹)自定义函数
    • 1.1 函数的组成
    • 1.2 自定义函数使用
  • (贰)函数的参数
    • 2.1 实际参数(实参):
    • 2.2 形式参数(形参):
  • (叁)函数的调用
    • 3.1 传值调用
    • 3.2 传址调用
  • (肆)函数的嵌套调用和链式访问
    • 4.1 嵌套调用
    • 4.2 链式访问
  • (五)函数的声明和定义
    • 5.1 函数声明
    • 5.2 函数定义

(壹) 自定义函数

自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。

1.1  函数的组成

1.2  自定义函数使用

①写一个函数可以找出两个整数中的最大值。

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

错误案例 (下文有详细解析)

简单来说:实参a和b,传给形参x,y的时候,形参是实参的一份临时拷贝

改变形参x,y并不会影响实参a,b

正确案例

(贰) 函数的参数

2.1  实际参数(实参):

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

2.2  形式参数(形参):

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

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

这里我们对函数的实参和形参进行分析:

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

(叁)函数的调用

3.1  传值调用

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

3.2  传址调用

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

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

函数和函数之间可以有机的组合的。

4.1  嵌套调用

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

4.2  链式访问

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

(五)函数的声明和定义

5.1  函数声明

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

5.2  函数定义

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

到此这篇关于C语言修炼之路一朝函数思习得 模块思维世间生下篇的文章就介绍到这了,更多相关C语言 函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 从头学习C语言之字符串处理函数

    目录 字符串处理函数: 存放和使用字符串: 获取字符串长度:strlen 示例: 拷贝字符串:strcpy和strncpy 示例: strncpy: 示例: 连接字符串:strcat和strncat 示例: 比较字符串:strcmp和ctrncmp strncmp和strcmp和区别: 示例: 总结 字符串处理函数: 存放和使用字符串: 字符串常量:“fishc”,“小甲鱼”,“鱼C工作室”字符数组: 获取字符串长度:strlen 用法:strlen(str) 注意: 这个函数获得的是长度(不带

  • C语言函数调用的三种实现方法实例

    目录 C语言函数 第一种方法 第二种方法 第三种方法 总结 C语言函数 1.概念:函数是一组一起执行一个任务的语句,每个c程序都必须有一个main函数,程序员可以把代码划分到不同的函数当中去,在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.c标准库提供了可以大量调用的库函数,比如,printf,strcmp等. 2.函数的定义 c语言中函数的一般定义如下: return_type Function_name(Parameter List) { The function body }

  • C语言详解如何应用模拟字符串和内存函数

    目录 1.strlen 求字符串长度 使用案例: 1.计数法 2.不创建临时变量计数器-递归 3.指针-指针的方式 2.长度不受限制的字符串函数 1.strcpy 使用案例: 模拟实现: 2.strcat 使用案例: 模拟实现: 3.strcmp-比较字符串首字母的大小 使用案例: 模拟实现: 3.长度受限制的字符串函数  1.strncpy 使用案例: 2.strncat  使用案例: 3.strncmp 使用案例: 4.strstr-找子串  使用案例: 模拟实现: 5.strtok 用法:

  • C语言main()函数的参数问题详解

    #include<stdio.h> void main(int argc, char* argv[]) { while (argc > 1) { ++argv; printf("%s\n", argv); --argc; } } #include<stdio.h> #include<stdlib.h> void main(int argc, char* argv[]) { int i; printf("The number of st

  • C语言修炼之路一朝函数思习得 模块思维世间生上篇

    目录 (壹)何为函数 1.1 函数定义 (贰) 库函数 2.1 为什么会有库函数? 2.2 那怎么学习库函数呢? 2.3 strcpy样例示范 2.4 memset样例示范 (叁)如何学会使用库函数? 过往文章 C语言巧用二分查找实现猜数游戏 C语言修炼之路初识分支句 循环助本心上篇 C语言修炼之路初识分支句 循环助本心下篇 (壹) 何为函数 1.1  函数定义 数学中我们常见到函数的概念.但是你了解C语言中的函数吗? 维基百科中对函数的定义:子程序 (贰) 库函数 2.1  为什么会有库函数?

  • C语言修炼之路函数篇真题训练上

    本文对应文章 : C语言修炼之路一朝函数思习得 模块思维世间生上篇 C语言修炼之路一朝函数思习得 模块思维世间生下篇 第壹题 A选项 C语言的函数每次只能返回一个元素,上面代码中的 return a,b 只能执行逗号表达式的最后一个语句,即返回20 B选项 C选项 D选项 全局变量在整个程序的任意地方都可以使用 第贰题 C选项 函数不可嵌套定义,但可以嵌套调用  --  “上一篇文章中提及过” 第叁题 A选项 可以 return void 不返回任何参数 B选项 正确 C选项 可以使用全局变量

  • C语言修炼之路一朝函数思习得 模块思维世间生下篇

    目录 (壹)自定义函数 1.1 函数的组成 1.2 自定义函数使用 (贰)函数的参数 2.1 实际参数(实参): 2.2 形式参数(形参): (叁)函数的调用 3.1 传值调用 3.2 传址调用 (肆)函数的嵌套调用和链式访问 4.1 嵌套调用 4.2 链式访问 (五)函数的声明和定义 5.1 函数声明 5.2 函数定义 (壹) 自定义函数 自定义函数和库函数一样,有函数名,返回值类型和函数参数. 但是不一样的是这些都是我们自己来设计.这给程序员一个很大的发挥空间. 1.1  函数的组成 1.2

  • C语言修炼之路函数篇真题训练下

      本文的Gitee地址:文章源代码 第壹题 :字符串逆序(递归实现) 方法一,非递归实现 main主体部分 数组名是首元素的地址 首元素是char类型,对应的传参元素过去就是  char*  类型 采用两个指针不断移动,然后交换两个位置的元素来实现逆序 方法贰,递归实现 大致思路 代码实现 (推荐自己手动模拟一下) void reverse_string(char* str) { int len = strlen(str); char tmp = str[0]; str[0] = str[le

  • C语言修炼之路悟彻数组真妙理 巧用下标破万敌下篇

    目录 (壹)冒泡排序 1.1冒泡排序的设计 1.2冒泡排序的步骤 1.3冒泡排序的实现 (贰)数组作为函数参数 2.1冒泡排序函数的错误设计 2.2冒泡排序函数的正确设计 (叁)对数组名的拓展解析 (壹)冒泡排序 1.1冒泡排序的设计 冒泡排序(Bubble Sort)也是一种简单直观的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢

  • C语言修炼之路灵根孕育源流出 初识C言大道生上篇

    目录 试问C语言为何物 壹 贰 叁 你好世界 巧手独创C世界 创建新项目 创建源文件 main函数 第一个程序 运行代码 初悟数据类型 前置知识 数据概念初识 变量?常量? 本文Gitee仓库地址:文章源代码 试问C语言为何物 壹 C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 贰 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的

  • C语言修炼之路初识指针阴阳窍 地址还归大道真上篇

    目录 (壹) 敢问指针为何物 1.1 指针的概念 1.2 指针的背后 (贰) 指针和指针类 2.1 指针的类型 2.2 指针类型的意义 2.3 指针的解引用 (壹)  敢问指针为何物 1.1  指针的概念 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值.由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元.因此,将地址形象化的称为“指针”.意思是通过它能找到以它为地址的内存单元. 那我们就可以这样

  • C语言修炼之路初识指针阴阳窍 地址还归大道真下篇

    目录 (壹) 行经旅途遇猛虎--“野指针” 1.1野指针成因 1.指针未初始化 2.指针越界访问 3. 指针指向的空间释放 1.2 巧法规避野指针 (贰) 指针之运算 2.1 指针+-整数 2.2 指针-指针 课堂小补充 (利用指针-指针实现strlen) (叁) 指针和数组 3.1 数组名 3.2 二级指针 3.3 指针数组 (壹)  行经旅途遇猛虎 -- “野指针” 概念:野指针就是指针指向的位置是不可知的(随机的.不正确的.没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,指针变

  • C语言修炼之路数据类型悟正法 解析存储定风魔上篇

    目录 (壹) 数据类型介绍 1.1  类型的基本归类 (贰)整形在内存中的存储 2.1  原码.反码.补码 2.2  深入解析 举例解析1: 举例解析2 (壹) 数据类型介绍 前面我们已经学习了基本的内置类型,以及他们所占存储空间的大小.: 类型的意义: 使用这个类型开辟内存空间的大小(大小决定了使用范围). 如何看待内存空间的视角. 1.1  类型的基本归类 整形家族: 浮点数家族: 构造类型: 指针类型 空类型: (贰)整形在内存中的存储 我们之前讲过一个变量的创建是要在内存中开辟空间的.

  • C语言修炼之路数据类型悟正法 解析存储定风魔下篇

    目录 (壹)大端小端藏端倪 1.1 什么是大端小端 1.2 大端小端模式 1)大端模式: 2)小端模式: 1.3 为什么有大端和小端 1.4 如何判断机器的字节序 (二) 浮点型在内存中的存储 2.1 浮点数在内存中的储存 2.2 题目解释 (壹)大端小端藏端倪 1.1  什么是大端小端 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中: 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中. 1.2  大端小端模式

随机推荐