函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码。函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码。函数还可以接收数据,并根据数据的不同做出不同的操作,最后再把处理结果反馈给我们。

  ====比较字符串的大小:strcmp() 函数====

  #include<stdio.h>

  #include<string.h>

  int main() {

    char str1[] = "haozhijian";

    char str2[] = "huangqinjie";

    int result,i;

    // 比较两个字符串大小

    for( i = 0; (result = strl1[i] - strl2[i]) == 0; i++){

      if(strl[i] == ‘\0’ || strl2[i] == '\0'){  break;}

    }

    printf(strl1 - strl2 = %d\n", result);

    return 0 ;   

  }

  形参与实参

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

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

  形参和实参的区别和联系:

  1. 形参变量只有在函数被调用时才分配内存,调用结束后,立即释放内存,所以形参只有在函数内部有效,不能在函数外部使用。

  2. 实参可以是常量、变量、表达式、函数等,无论是惨是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便这些值传给形参,所以因嘎嘎i提前用赋值、输入等办法使实参获得确定值。

  3. 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参。

====函数返回值(return 关键字)精讲

  函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过return 语句返回。

======函数声明以及函数原型====

  C语言代码由上倒下一次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常在函数定义之前使用它们,这个时候就需要提前声明。

  声明:就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,我稍后会把定义补上。

在实际开发过程中,对于多个文件的程序,通常是将函数定义放到源文件中,将函数的声明放到投文件中,使用函数时引用对应的投文件就剋,编译器会在链接阶段找到函数体。

函数参考手册: www.cpluscplus.com ,它提供了所有C语言标准函数的原型,并给出了详细的介绍和使用示例,可以作为一部权威的参考手册。

 ===7.10 C语言递归函数(递归调用)详解[带实例演示]

  一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一层地由内到外退出。

  递归的缺陷:时间开销和内存开销都非常大,极端情况下会导致程序奔溃。

===============

  头文件:<stdio.h> 、<ctype.h>、<stdlib.h>、<strng.h>

  熟练的程序员: <assert.h>、<limits.h>、<stddef.h>、<time.h>

  优秀的程序员:<float.h>、<math.h>、<error.h>、<locale.h>、<setjmp.h>、<signal.h>、<stdarg.h>

===============

  

  

C语言入门---第七章 C语言函数的更多相关文章

  1. C 语言入门---第十一章---C语言重要知识点补充

    ====C语言typedef 的用法==== 1. C语言允许为一个数据类型起一个新的别名,就像给人起绰号一样. typedef OldName newName; typedef 和 #define ...

  2. C 语言入门---第六章 C语言数组

    数组就是一些列具有相同类型的数据的集合,这些数据在内存中一次挨着存放,彼此之间没有缝隙. 我们可以将二维数组看作一个Excel表格,有行有列,length1 表示行数,length2 表示列数,要在二 ...

  3. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  4. C语言入门(1)——C语言概述

    1.程序与编程语言 我们使用计算机离不开程序,程序告诉计算机应该如何运行.程序(Program)是一个精确说明如何进行计算的指令序列.这里的计算可以是数学运算,比如通过一些数学公式求解,也可以是符号运 ...

  5. Go语言入门系列(六)之再探函数

    Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ...

  6. C语言入门(6)——C语言常用数学函数

    在编码过程中会经遇到数学运算,幸运的是C语言提供了非常丰富的数学函数库. 在数学中使用函数有时候书写可以省略括号,而C语言要求一定要加上括号,例如sin(pi/2)这种形式.在C语言的术语中,pi/2 ...

  7. C语言学习第七章

    今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针. 指针:指针是一个变量,它存储另一个对象 ...

  8. 明解C语言 入门篇 第二章答案

    练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...

  9. 明解C语言 入门篇 第一章答案

    练习1-1 #include <stdio.h> int main() { int a; a = 15; int b; b = 37; int c; c = a - b; printf(& ...

随机推荐

  1. Python学习之函数篇

    python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...

  2. 解密国内BAT等大厂前端技术体系-美团点评之上篇(长文建议收藏)

    引言 进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也 ...

  3. python web django 2nd level -- 待更新

    练习代码位置 实例代码位置 --> app: myblog Form 利用Form表单验证,自己写的html 思路: 新建一个类 LoginForm(forms.Form) 新建对象 obj = ...

  4. appium可通过SDK自带的uiautomatorviewer或monitor工具,来查看页面元素(Android)

    工具一:uiautomatorviewer 1.在SDK的tools目录中找到uiautomatorviewer,双击打开若出现闪退一般是jdk版本不匹配(建议安装jdk1.8的): 2.在使用这个工 ...

  5. vue axios路由跳转取消所有请求 和 防止重复请求

    直接上干货 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. 或者是跳转路由的时候取消还未返回的请求 第一步: axios 怎么取消 ...

  6. nginx介绍以及nginx的反向代理

    什么是nginx? Nginx 是一个高性能的轻量级的HTTP和反向代理服务器,也是一个邮件服务器. 下载地址 本人使用的是Tengine,它是由淘宝网发起的Web服务器项目.它在Nginx的基础上, ...

  7. VS2017中使用C++语言编写delay函数实现延迟

    秒级别的延时 //定义函数 void delay(int sec){ time_t start_time, cur_time; // 变量声明 time(&start_time); do { ...

  8. php redis 集群扩展类文件

    <?php /** * redis集群驱动 */ namespace Common\Api; class RedisCluster{ protected $servers=array( '192 ...

  9. 【JavaScript】关于eval("("+result+")")的认识

    起因是做现项目时,参用很久之前一个项目的代码,少了一行eval("("+result+")"):控制台始终运行不出结果 大致意思是:eval方法是将json字符 ...

  10. Linux学习:进入与退出系统

    进入Linux系统:必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号: 1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情. 2.普通用户--这个帐号供普通用户使 ...