c语言学习+子函数

本文探讨了C语言中的子函数使用,强调了C语言传递参数的方式是值传递而非引用传递。解释了函数调用、函数表达式和函数栈区的概念,特别提到了栈区的先进后出特性确保了逐级返回。此外,文章还讨论了如何保证函数的独立性,即通过内存区段的划分,以及函数声明和定义的位置。最后,给出了一个应用实例,涉及十进制到二进制、八进制、十六进制的转换算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01 子函数
实际参数 ———(数值)—- 形式参数

注意

  • c语言是传递值参并非变参。
  • 并非 **引用传递 **–传递变参 (地址) 。
  • 传值调用——传递地址 并非 数值。

例如: scanf ————值参做变参(送的地址&)。

区分: 值传递 & 产地变参

子函数放在主函数前面 or 在主函数前加入函数声明

int sq(int);
int main()
{
int a;
printf("%d"sq(a));
}
int sq(int y)
{
return(y*y);
}

函数调用

  • 函数表达式
  • 函数实参
  • 函数语句
  • 判别
 r=int fun(int a, int b);//错误   无需int
 r=fun;//错误  fun当作变量
 fun(a,b)//正确  但是返回值被丢失

注意:printf&scanf也有可能出错

例题

  • 定义函数头

求一个整数的长度

int length(int n)

调用举例:输出变量num中的数据长度

printf("%d",length(num));

问:如何保证各个程序中各个函数独立?

处于不同内存区段

堆区

  • 动态内存分配指令

栈区

  • 只有一个口出入一个口

  • 先进后出
    程序调用的内部

  • 先进后出自动保证了逐级返回

  • 同名的参数——不同函数用不同的函数栈区

  • 查看栈——调试(函数窗口)

函数声明可以在其他函数内部。但只可以在该函数使用。

应用举例

  • 十进制转换二进制 八进制 十六进制。
    算法思路
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值