zoukankan      html  css  js  c++  java
  • 函数基础

    函数调用

    调用运算符

    调用运算符的形式是一对圆括号,它作用于一个表达式,该表达式是函数或者函数指针。调用表达式的类型就是函数的返回类型

    调用函数

    函数的调用完成两个任务:

    • 用实参初始化形参。
    • 将控制权从主调函数转移给被调函数,此时,主调函数的执行被暂时中断,被调函数开始执行。

    return语句的执行也完成两个任务:

    • 返回 return语句中的值(如果有的话)。
    • 将控制权从被调函数转回到主调函数。

    形参与实参

    形参与实参:

    • 类型必须匹配。
    • 数量必须一致。

    函数的形参列表

    • 定义空的形参列表的两种形式:
    void f1(){/*...*/};				// 隐式地定义空形参列表
    void f2(void){/*...*/};			// 显式地定义空形参列表
    
    • 两个形参不能重名。
    • 形参名是可选的。

    局部对象

    C++ 中 名字有作用域,对象有生命周期

    • 名字的作用域是程序文本的一部分,名字在其中可见。
    • 对象的生命周期是程序执行过程中,该对象存在的一段时间。

    函数体是一个语句块,块构成新的作用域:

    • 形参和函数体内定义的变量统称为局部变量,仅在函数体内可见。
    • 局部变量会隐藏外层作用域中的同名变量。

    自动对象和局部静态对象

    函数体外定义的对象存在于整个程序执行过程中,此类对象在程序启动时创建,直到程序结束才会被销毁。而局部变量的声明周期则依赖于声明形式:

    • 自动对象,把只存在于块执行期间的对象称为自动对象,当块执行结束后,块中创建的自动对象的值就变成未定义的。局部变量对应的自动对象初始化分为两种情况:
      • 如果变量本身含有值,就用这个值进行初始化。
      • 如果变量本身不含有值,执行默认初始化,对于内置类型未初始化的局部变量将产生未定义的值。
    • 局部静态对象,将局部对象定义成static类型,局部变量的生命周期就将贯穿函数调用及之后的时间。
      • 局部静态对象在程序第一次经过对象定义语句时初始化,直到程序终止才被销毁,在此期间即使对象所在的函数结束执行也不会对它有影响。

    函数声明

    • 同其它名字一样,函数的名字在使用之前必须声明,函数声明也称为函数原型
    • 函数只能定义一次,但是可以声明多次。
    • 函数的声明与函数的定义十分类似,区别在于函数声明无须函数体,用一个分号代替即可。
    • 由于函数声明不需要函数体,所以也无须形参的名字,但是通常为了更好地理解函数作用,还是带上形参的名字。

    分离式编译

    C++支持分离式编译,所谓分离式编译就是将程序分割到几个文件中,每个文件独立进行编译。

  • 相关阅读:
    删除了原有的offset之后再次启动会报错park Streaming from Kafka has error numRecords must not ...
    sparkStreaming消费kafka-1.0.1方式:direct方式(存储offset到Hbase)
    sparkStreaming消费kafka-1.0.1方式:direct方式(存储offset到zookeeper)
    进程的管理(五)-进程的实现
    进程管理(四)-进程的状态以及转换
    进程管理(三)-进程的层次
    numpy库的认识以及数组的创建
    进程管理(二)-进程的终止
    进程管理(一)-进程的概念以及进程的创建
    python爬取b站排行榜
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/12498047.html
Copyright © 2011-2022 走看看