C语言函数

函数

  • 格式:
  • 返回值类型 函数名称(参数列表)
    {
    封装进函数的代码

注意点

1、参数列表的格式
(数据类型 变量名称,数据类型 变量名称....)参数
参数可以有一个或者多个

2、函数的命名规则和变量相同

3、返回值和返回类型
* 返回值是什么类型,函数返回值类型就写什么类型
* return的作用就是将函数的返回值返回给函数的调用者

4、函数名称不能相同,哪怕函数返回值类型不同亦或是函数形参列表不同,函数返回值也不能相同

5、函数不能嵌套定义,哪怕编译器允许这么干,我们也不要这么干


函数在内存中的表现形式


函数形参和实参的注意点

1、如果是基本类型定义的数据作为函数的参数,那么在函数内修改形参,将不会影响外面的值

2、在函数内部不能定义和形参相同的变量(相当于重复定义)

3、调用函数时传递的实参个数必须和函数的形参个数保持一致

4、形参实参类型不同,会自动转换为形参类型


函数声明和返回值

  • C语言中函数遵守从上至下的执行顺序,因此,前面定义的函数后面可以使用,但是后面定义的函数必须在之前声明(声明就是告诉计算机有这么一个函数)

  • 返回值就是把函数执行的结果返回给他的调用者

注意点

1、函数声明必须放在调用函数之前

2、一般情况下写在函数的外面而不是写在函数的里面,为了提高代码的阅读性

3、在写函数声明的时候,形参不需要指定名称(指定名称也不错)

4、如果函数返回值类型是整型,声明前面可以不用编写函数的声明(建议还是写上)


main函数

  • main函数是系统自动调用的函数,接收两个参数

  • main函数接收的第一个参数argc:表示第二个指向字符串数组的指针指向的数组的个数

    main函数接收的第二个参数argv:这是一个指向字符串数组的指针,argv[0]是一个字符串数组,是程序的启动名,这个数组是可以动态添加的

int main(int argc, const char *argv[])
{
    // ["lnj", "zs"]
    // 代表数组中有一个元素
    // 代表数组中有两个元素
    // 默认情况下, 系统在调用main函数的时候, 会给argv这个数组中存放一个元素
    // ["C:\Users\Jonathan_Lee\Desktop\C_Lessons\Code\build-76-lesson-Desktop_Qt_5_11_0_MinGW_32bit-Debug\debug\76-lesson.exe"]
    printf("argc = %i\n", argc);
    printf("argv[0] = %s\n", argv[0]);
    printf("argv[1] = %s\n", argv[1]);
    printf("argv[2] = %s\n", argv[2]);
    return 0;
}
  • main函数的return 0 的含义

  • 告诉系统当前程序是正常结束的, 如果return返回的不是0, 就代表告诉系统程序不是正常结束的

  • 在企业开发中, 我们是可以通过控制台(CMD)在运行程序的时候给main函数传递参数的

函数递归

  • 函数递归就是函数自己调用自己

  • 递归可以实现循环的功能, 但是递归的性能比循环差很多

  • 递归函数的内存原理


图解:
1、res调用test函数,开辟存储空间
2、test函数使用定义num开辟空间,返回test函数,内存为test又开辟一块空间
3、重复2操作,当条件不满足时返回num,返回给调用者,调用者为test函数,一层一层向上传递
4、当一个函数传递完成之后就会将内存释放


案例

  • 计算b的n次幂


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,769评论 1 19
  • 1、c语言的函数有以下特点: (1)才源程序由函数组成,一个主函数main()+若干其他函数 C程序中的函数类似文...
    滕王阁序阅读 1,402评论 0 6
  • 函数基本概念 C源程序是由函数组成的例如: 我们前面学习的课程当中,通过main函数+scanf函数+printf...
    极客江南阅读 1,424评论 1 14
  • 函数的基本概念 C源程序是由函数组成的 C语言不仅提供了极为丰富的库函数, 还允许用户建立自己定义的函数。用户可把...
    Cc_5691阅读 703评论 0 0
  • C语言函数(一) 谨记 短暂的人生中,注定有很多人陪伴着你度过,陪你一起欢呼,陪你一起伤心流泪,陪你一起走过一条又...
    长风留言阅读 2,344评论 1 7