当前位置: 首页 > news >正文

入侵WordPress网站聚合搜索引擎接口

入侵WordPress网站,聚合搜索引擎接口,东莞网站推广多少钱,海宁营销型网站设计文章目录 函数函数的定义与声明局部变量和全局变量、静态变量静态变量和动态变量函数的值传递函数参数的地址传值 函数的嵌套使用函数的递归调用 函数 函数的定义与声明 函数的概念:函数是C语言项目的基本组成单位。实现一个功能可以封装一个函数来实现。定义函数的…

文章目录

  • 函数
    • 函数的定义与声明
    • 局部变量和全局变量、静态变量
    • 静态变量和动态变量
    • 函数的值传递
      • 函数参数的地址传值
    • 函数的嵌套使用
    • 函数的递归调用

函数


函数的定义与声明

函数的概念:函数是C语言项目的基本组成单位。实现一个功能可以封装一个函数来实现。定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值。

函数的定义

函数定义的格式:函数的返回值类型 函数名(形参列表)
{代码块;}

注意:

  1. 函数的返回值类型,可以是学过的int、char、float、double以及void,还可以是以后要学习的类型;它的作用:表示函数执行完之后,可以得到一个什么类型的值。
  2. return 返回出一个具体值(void类型的返回值可以没有return)。
  3. 函数名:标识符(符合用户自定义标识符)、见名知意
  4. 有指定参数时,要指定参数的类型、名字;参数可以是一个、多个,也可以没有。
  5. 不能在定义函数时,在函数首部小括号后直接跟分号。
  6. 指定函数所完成的功能,也就是规定函数要完成什么操作, 函数是做什么。
  7. 函数体可以没有语句,但不能没有花括号。
  8. 在定义函数的里面,不能再定义一个函数。
  • 例1:定义一个打印九九乘法表的函数并调用
#include<stdio.h>//定义一个函数,打印一个九九乘法表
void printMul() //void 定义一个返回值为空的函数
{for (int i = 1; i <= 9; i++){for (int j = 1; j <= i; j++){printf("%dx%d=%d\t", j, i, i*j);}printf("\n");}
}
int main()
{printMul();return 0;
}

在这里插入图片描述

注意:当main函数写在调用的函数之前时,程序运行会报错。因为程序是从上到下运行,当运行到main函数中时找不到你所调用的printMul()函数,则会报错。这时,我们可以进行函数声明来解决这个问题。

函数声明语句的一般格式:

函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,……);

也就是相当于把函数头前置

#include<stdio.h>void printMul(); //函数的返回值类型 函数名(形参列表);int main()
{printMul();return 0;
}//定义一个函数,打印一个九九乘法表
void printMul() //void 定义一个返回值为空的函数
{.....
}
  • 例2:函数的返回值类型说明,函数的返回值类型必须跟函数类型一致,否则就会出现错误。例如我想定义一个返回值为整型的函数
    在这里插入图片描述
  • 若返回值为双精度浮点型,则会出现数据丢失,因为只返回整型数据
    在这里插入图片描述

局部变量和全局变量、静态变量

什么是局部变量 ?
局部变量是在函数中定义的普通变量(没有任何的修饰),以及在函数开头定义的形参。

局部变量的作用范围:从定义开始,往下的作用域;出了作用域就不能使用。函数开头定义的变量,在该函数范围内有效。

在这里插入图片描述

什么是全局变量?
全局变量:函数外或全局空间定义的变量
全局变量的作用范围:从定义开始往下,在本文件内所有的地方都可以使用。
全局变量在程序结束的时候,会被释放。

#include<stdio.h>
int a = 10; //定义一个全局变量void func1()
{int a = 30;printf("func1函数中:a=%d\n", a);
}void func2()
{printf("func3函数中:a=%d\n", a);
}int main()
{func1();func2();return 0;
}

在这里插入图片描述

静态变量和动态变量

程序中所定义的变量默认是动态局部变量(auto)。
在定义变量前加一个static可定义一个静态局部变量。

静态变量在程序开始后定义,结束前才会被释放,所以其生命周期比较长,在函数调用中只会被定义一次,不会被定义多次,当再次执行到定义语句时,其值不会被重置(初始化),会保留上次改变的值。

void func2()
{static int c = 10; //静态变量 c会被锁住,让c不会被释放int b = 10;b++; c++;printf("b=%d\tc=%d\n", b, c);
}int main(void) //有void表示不会有任何实参传过来,如果有就会报错
{for (int i = 0; i < 3; i++){func2();}return 0;
}

在这里插入图片描述

函数的值传递

注意:形参不会改变实参的值,实参传值给形参,值是一个单向传递。
在这里插入图片描述

函数参数的地址传值

fun函数的形参是如何接收传输数据——地址?

(1)先得到数据的地址,然后传给函数。
(2)访问定义函数的里的这个地址的值

如何定义一个接收地址的变量?
能存地址的变量:指针变量

指针变量的定义: 数据类型 *指针名
数据类型:用指针存的什么类型的地址
指针名:符合标识符命名规则和命名规范

* —— 取值运算符、解引用;通过地址做解引用找到值
在这里插入图片描述

函数的嵌套使用

函数的定义时相互平行、独立的,在定义函数时,一个函数内不能再定义另一个函数,也就是说,函数不能嵌套定义。

但是函数可以嵌套调用,也就是再调用一个函数的过程中,又调用另一个函数。

在这里插入图片描述

函数的递归调用

函数的递归:在一个函数中,函数重复的调用自己。
在函数调用的时候,函数会入栈。

在这里插入图片描述

  • 注意以上结果,当我们调换两个语句时,会有不一样的结果
    在这里插入图片描述
    过程分析
    在这里插入图片描述
  • 函数递归调用经典例子:斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

int func5(int n)
{if (n > 2){return func5(n - 1) + func5(n - 2);}else if (n == 1 || n == 2){return 1;}
}int main(void) //有void表示不会有任何实参传过来,如果有就会报错
{printf("%d\n", func5(4));return 0;
}

在这里插入图片描述

http://www.khdw.cn/news/4016.html

相关文章:

  • linux wordpress 空白搜索引擎外部链接优化
  • 邵阳网站开发公司推荐最好的关键词排名优化软件
  • 做基础网站主机要?短视频代运营合作方案
  • 比较好的中文wordpress主题国外seo网站
  • wordpress微信快捷支付湖南seo推广服务
  • 百度做网站电话多少钱怎样优化网站排名
  • 网络公司网站开发aso榜单优化
  • 凡科做的网站可以在百度搜到吗qq关键词排名优化
  • 中小企业网站功能怎样才能上百度
  • 企业做网站的优势东莞seo优化案例
  • 外国做的福利小视频在线观看网站高端网站建设公司排名
  • 人们做网站怎么赚钱成品网站货源1
  • 南京市网站建设公司如何在百度上发布自己的文章
  • asp网站搭建软件武汉seo群
  • 小学生信息科学做网站房管局备案查询网站
  • 做彩票网站程序违法吗网站提交
  • 网站建设情况的汇报百度热议
  • 网站建设济南有做的吗哈尔滨seo优化软件
  • 做网站如何在百度快照上排名线下推广方案
  • 网站demo怎么做做网店自己怎么去推广
  • 网站对于企业的作用网站推广策划思路
  • 教做高级料理的网站品牌网络推广外包
  • 凡科的模板做网站新闻发稿软文推广
  • 效果图制作软件appseo与sem的区别与联系
  • javaweb项目源码免费下载专业seo关键词优化
  • 成都市网站建设北京营销公司排行榜
  • 做调查赚钱网站小红书广告投放平台
  • 免费网站入口网站免费进ps软件网络培训心得体会总结
  • 政府集约化网站建设怎么在百度打广告
  • 南通网站上百度首页百度seo排名点击软件