Advertisement

c语言:函数相关知识点

阅读量:

函数的相关知识点

1.c语言中函数的分类:

1.库函数

strcpy
该种方式用于复制目标指针指向的内存区域至源指针指向的内存区域;
Printf
该函数用于输出格式化字符串;
Memset
该函数用于将内存区域设置为特定值;

2.自定义函数

函数的组成部分为:
Ret\_type fun_name(参数列表)
{
Statement;// 语句部分
}
返回类型为Ret\_type
函数名为fun_name;
函数参数为Function parameters。

2.函数的参数

1.实际参数

正确传递给函数的参数时,实参可为常量、变量、表达式或函数等.无论是哪种类型的参数都需要具备明确无误的确定值.

2.形式参数

函数名称括号内的变量部分,在程序执行过程中只有当对应的函数被调用时才会被赋值为实例;一旦函数调用结束就会被销毁并释放资源

复制代码
    //写一个函数找出两个整数中的最大值
    /*#include<stdio.h> 
    int MAX(int num1,int num2)
    {
    	return(num1>num2)?(num1):(num2);
    }
    int main()
    {
    	int a=0;
    	int b=0;
    	printf("请输入两个整数:");
    	scanf("%d%d",&a,&b);
    	int ret=MAX(a,b);
    	printf("%d",ret);
    	return 0;
     } */

3.函数调用

1.传值调用:

复制代码
    实参和形参占有不同的内存块,对形参的改变不会影响实参。

2.传址调用

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

这种传参方式让函数内部与外部建立起了联系。形参的改变会影响实参。

复制代码
    //写一个函数可以交换两个整型变量个内容
    /* #include<stdio.h>
     void swap1(int num1,int num2)
     {
     	int tmp=0;
     	tmp=num1;
     	num1=num2;
     	num2=tmp;
     }
     //swap1函数是错误的,两个变量交换得交换他们的地址,否则当调用函数时它的作用域已结束 ; 
     void swap2(int* px,int* py)
     {
     	int tmp=0;
     	tmp=*px;
     	*px=*py;
     	*py=tmp;
     }
     
     int main()
     {
     	int a=10;
     	int b=20;
     	swap1(a,b);
     	printf("a=%d b=%d\n",a,b);
     	swap2(&a,&b);
     	printf("a1=%d b1=%d\n",a,b);
      } */

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

函数与函数之间的有机结合。

1. 嵌套调用

2.链式访问

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

复制代码
    /*#include<stdio.h>
    #include<string.h>
    int main()
    {
    	char arr[20]="hello";
    	int ret=strlen(strcat(arr,"bit"));
    	printf("%d\n",ret);
    	return 0;
    }*/

5.函数的声明和定义

1.函数声明:

向编译器说明函数的名称、参数类型以及返回类型等基本信息。并不关心该函数是否被定义。
函数的声明通常放置于其使用位置之前,并确保在调用时先有声明。
函数的声明一般放置于包含该函数头文件中。

2.函数定义:

#include <stdio.h>
#define TEST_H
#endif TEST_H

1.什么是递归?

该编程技巧用于实现某种功能的技术被称为"回转"(recursion)。作为一种广泛使用的算法,在程序设计语言中得到了广泛应用。
在程序设计中......的过程或函数在其定义中有直接或间接调用自身......的方法。
该策略通过将问题逐步分解为规模较小的子问题来进行求解。
将大任务分解为小步骤是一种高效的思维方式。
该策略通过将问题逐步分解为规模较小的子问题来进行求解。
为了确保算法的有效性:
当满足这一特定限制条件时,则停止执行。
每一次这样的调用都使执行步骤逐渐接近这一终止边界。

复制代码
    //接受一个整型值(无符号),按照顺序打印他的每一位。例如:输入:1234,输出:1 2 3 4
    /*#include<stdio.h>
    void print(int i)
    {
    	if(i>10)
    	{
    	  print(i/10);	
    	}
    	printf("%d ",i%10);
    }
    int main()
    {
    	int num=1234;
    	print(num);
    	return 0;
    }*/

欢迎使用Markdown编辑器

很高兴见到您! 这是一个你第一次接触 Markdown编辑器 的界面显示的欢迎页面。如果你有兴趣了解如何使用这个强大的文本编辑工具,请仔细阅读这篇文章,它会详细介绍Markdown的基本语法知识。

新的改变

开发了一款具有语法支持和功能拓展能力的Markdown编辑器。此外还包含基本的Markdown语法支持。新增了以下几项主要功能:这些新增的功能将极大地提升你的写作效率。

  1. 一项全新的界面设计方案将为用户提供显著提升的写作体验。
  2. 在创作中心中选择你偏好的代码高亮样式后,在Markdown中输入相关代码即可实现选定高亮风格的效果。
  3. 新增了图片拖拽功能,在本地设备上传并拖放至编辑区即可实时查看。
  4. 引入了更加便捷的KaTeX数学公式书写系统。
  5. 现在支持采用mermaid语法绘制甘特图。
  6. 现在支持多屏幕同时编辑一篇Markdown文章。
  7. 新增多种实用功能:包括专注模式、预览视图以及简洁输入方式,并于编辑区与预览区之间设置了滚轮同步控制按钮。
  8. 新增快速检查列表生成工具。

功能快捷键

撤销:取消

合理的创建标题,有助于目录的生成

通过输入单个井号并按空格键的方式即可创建一级标题;双井号加空格操作可生成二级标题;依此类推;同时支持创建高达六级的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

Alt

带尺寸的图片:

Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

请访问博客设置页面,在这里挑选一种你偏好的代码块高亮样式,并查看与之匹配的同样经过高亮处理的 代码片

复制代码
    // An highlighted block
    var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown Text-to- HTML conversion tool

Authors John

复制代码
 Luke 

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML。

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

你可以找到更多相关信息的LaTeX数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成任务 正在进行的任务 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid

Mon 06 Mon 13 Mon 20 已完成任务 正在进行的任务 第一阶段 第二阶段 现有任务 Adding GANTT diagram functionality to mermaid

  • 关于 甘特图 语法,参考 这儿,

UML 图表

支持通过UML图表进行可视化渲染,并且该工具采用Mermaid技术实现。例如下文展示的一个典型的序列图实例:

张三、李四与王五相会于一室之内。
你好呀!李四,请问最近可好?
请问王五同学最近可好?
我很高兴,请问您还好吗?
我很高兴,请问您还好吗?
李四花费了不少时间在文字上,请问是否太长不适合一行?
请看这里——
王五同学正专注地看着我,请问您还好吗?
张三、李四与王五

这将产生一个流程图。:

链接

长方形

圆角长方形

菱形

  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no

  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果您希望体验此编辑器的功能,请在当前文章中进行任意修改。完成后,请您前往顶部工具栏中的 导出文章 选项,在此处生成一个.md或.html文件以保存本地副本。

导入

如果你希望加载一篇你已撰写的.md或.html文档,在顶端菜单栏中,则有导入选项用于将与你所创作的内容相关的.md或.html文件导入,请继续开始你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

*[HTML]: 超文本标记语言

全部评论 (0)

还没有任何评论哟~