admin管理员组

文章数量:1794759

c语言学习+子函数

c语言学习+子函数

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)); 问:如何保证各个程序中各个函数独立?

处于不同内存区段

堆区

  • 动态内存分配指令

栈区

  • 只有一个口出入一个口

  • 先进后出

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

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

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

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

应用举例

  • 十进制转换二进制 八进制 十六进制。 算法思路

本文标签: 语言子函数