栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言----函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言----函数

C语言----函数
  • 函数的定义
  • 函数的注意事项
  • 如何通过被调函数修改主调函数中普通变量的值
  • 一维数组名和大小
  • 如何用函数来传递一维数组
  • 函数是C语言的最小单位
  • 函数的调用
    • 递归函数
    • 递归与循环对比
    • 递归小问题--请问输出结果是什么
  • 函数的传值和传地址

函数的定义
函数的返回值     函数的名字(形参列表)
{
	函数的主体
}
函数的注意事项
  1. 函数的本质是描述实现某个特定功能
  2. 函数的返回值的类型称为函数的类型若函数主体的返回值和函数名前的返回值类型不同,最终返回值以函数名前的类型为准
  3. 注意函数调用和函数定义的顺序,如果函数调用写在了函数定义之前必须加函数前置声明并且声明要加 ; 分号
如何通过被调函数修改主调函数中普通变量的值

要想修改主调函数的值,实参一定要为该变量的地址,形参一定要是指针变量 通过 *p在函数中来修改变量的值

#include 
void func(int *a);
int main()
{
 int a = 0; //初始化 a 值为 0
 func(&a); //调用函数 func
 printf("%d",a); //输出 a 的结果
}
void func(int *a)//定义函数 func
{
 *a = 10;   
}

地址对于不同的作用域是开放的

一维数组名和大小
#include
int main()
{
	int array[4] = { 1,2,3,4 };
	printf("len = %dn", sizeof(array));
	printf("len1 = %dn", sizeof(array)/sizeof(array[0]));
	printf("len2 = %dn", sizeof(array[0]));
	printf("首元素 = %dn", *array);
	int* p ;
	p = array;
	printf("p的大小 = %dn", sizeof(p));
	printf("p = %#xn", p);
	printf("p = %#xn", array);
	printf("*p的值 = %dn",*array);
	printf("*p的值 = %dn", *p);
	//printf("p指针的大小 = %dn", sizeof(p));
	printf("p的地址 = %#xnarray的地址 = %#xn", &p, &array);
}


数组名传递参数的时候就相当于一个指针 但是你要去sizeof的时候他的大小就是数组的大小

如何用函数来传递一维数组

数组的传递不可能通过从copy来传递 想传递必须通过指针来改变

函数是C语言的最小单位 函数的调用 递归函数

直接或者间接调用自己的情形就叫做递归函数,递归是比较接近自然语言特性的一种调用方式,需要使用合理的出口。否则会报错甚至程序直接挂掉。 递归–递过去归还回来
满足递归的条件其实和循环很相似—初始化、 条件终止语句、循环
终止条件----递归条件

递归返回func(递归条件)
{
	if(递归终止条件)
		终止处理;
	else
		func(趋于递归终结条件);
}
//求n的阶乘
int factorial(int n)
{
	if(n == 0)
		return 1;
	else
		return n *factorial(n-1);//注意递归条件是否参与运算 
// 		return n *factorial(--n);
}
int fact = factorial(5)
递归与循环对比

能用循环最好用循环

递归小问题–请问输出结果是什么
#include
void fun(int i)
{
    if (i > 0)
    {
        fun(i / 2);
    }
    printf("%dn", i);
}
int main()
{
    fun(10);
    return 0;
}

0 1 2 5 10

函数的传值和传地址

当满足不了传值的时候传递地址。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/296523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号