c 语言 函数调用知识点,C/C++知识点之初识C语言中的函数

本文主要向大家介绍了C/C++知识点之初识C语言中的函数,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。什么是函数?

函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或一个值。

可以先想象成数学中的函数:

y=f(x)

例如 求begin到end和的函数定义

void sum(int begin, int end)  // void 为返回类型(不返回任何东西) sum 为函数名 (int begin, int end)为参数表)

{

int i;

int sum;

for(i=0;i<=end;i++){

sum +=i;

}

printf("%d到%d的和是%d\n",begin, end, sum);

}

调用函数

函数名(参数表);

()起到了表示函数调用的重要作用,即使没有参数也要()

参数的值会被按照顺序依次用来初始化函数中的参数

从函数中返回值(单一出口)

int max (int a , int b)

{

int ret;  if(a>b){  ret=a;  }  else{  ret=b;  }  return ret;}

●return停止函数的执行,并送回一个值

●return;

●return 表达式;

●可以赋值给变量(c=max(a,b);)

●可以再传递给函数(●●●printf("%d\n", max(a,b));)

●甚至可以丢弃返回值

没有返回值的函数

● void 函数名(参数表)

●不能使用带值的return

●可以没有return

●调用的时候不能返回值的赋值

函数先后关系

void sum(int begin, int end)

{

int i;

int sum=0;

for(i=begin;i<=end;i++){                                        //像这样把sum()写在上面,是因为:C的编译器自上而下顺序分析你的代码

sum +=i;

}

printf("%d到%d的和是%d\n",begin,end,sum);

}

int main()

{

sum(1,10);

sum(20,30);

sum(35,45);

return 0;

}

void sum(int begin, int end);//函数的原型声明,原型里可以不写参数的名字,但是一般仍然写上

int main()

{

sum(1,10);

sum(20,30);

sum(35,45);

return 0;

}

void sum(int begin, int end)

{

int i;

int sum=0;

for(i=begin;i<=end;i++){

sum +=i;

}

printf("%d到%d的和是%d\n",begin,end,sum);}

调用函数

●如果函数有参数,调用函数时必须传递给它数量 类型正确的值

●可以传递给函数的值是表达式的结果,这包括

● 字面量               【c=max(10,12);】

●变量                     【c=max(a,b);】

●函数的返回值      【c=max(max(23,45), a);】

●计算的结果         【c=max(23+45,b);】

类型不匹配?

● 调用函数时给的值与参数的不匹配时C语言传统上最大的漏洞

● 编译器总是悄悄替你把类型转换好,但是这很可能不是你所期望的

● 后续的语言,C++/Java 在这方面很严格

传过去的到底是什么?

void swap(int a, int b);

int main()

{

int a=5;

int b=6;

swap(a,b);

printf("a=%d b=%d\n",a,b);                        ● 这样的代码能交换a和b的值吗?

return 0;

}

void swap(int a, int b)

{

int temp =a;

a=b;

b=temp;

}

C语言在调用函数时,永远只能传值给函数

●每个函数都有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系

本地变量

●函数的每一次运行,就产生一个独立的变量空间,在这个空间中的变量,就是函数所独有的,称为本地变量

●定义在函数内部的就是本地变量

●参数也是本地变量

●对于本地变量,生存期和作用域   大括号内———块(函数的块内 语句的块内)

●程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了

●块外面定义的变量在里面仍然有效

●块里面定义了和外面同名的变量则掩盖了外面的

●不能再一个块内定义同名的变量

●本地变量不会被默认初始化

没有参数时

(void)

逗号运算符

● 调用函数时的圆括号里的逗号时标点符号,不是运算符

f(a,b)

f((a,b))

●C语言不允许函数的嵌套定义

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值