C/C++知识点之初识C语言中的函数
小标 2018-11-01 来源 : 阅读 787 评论 0

摘要:本文主要向大家介绍了C/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+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程