zoukankan      html  css  js  c++  java
  • 第七章:函数

    1:形参:是一个变量,它作用域在于本函数,实参:是一个表达式,它是给形参初始化的

    2:对于需要改变实参内容时,c++偏向于使用引用,即给其取别名;在调用时初始化。

    3:引用变量,定义时必须初始化,但是对于是形参时,应该理解成,在调用时才进行初始化的,故而没有定义时就确定;类似的还有常量形参。

    4:const形参是比非const形参要灵活的,因为非const形参函数不能调用const实参,以及字面值

    5:数组不能成为函数形参,因为数组不支持复制,而且数组名自动转为指针,函数有其形参形式;实质是不能传递数组的。

    6:注意,对于数组3形式中的长度限制,其实没有意义,因为编译器是不会检查数组长度的。

    7:这里就得注意了,数组传参时,由于它的名字自动转为指针,所以实质就是传递指针,----这是对于非引用类型时

    8:对于引用时,数组不会编译成指针了,而是数组本身的引用。这时形参的数组大小必须与实参数组大小一致,不能是不确定,形式如下int (&arr)[n]。

    9:对于省略符形参,利用va_list类型和va_start、va_arg、va_end;用va_list表示栈,va_start获取第一个参数,出栈第一个;接着用va_arg不断获取栈内数据,获取完后,用va_end表示获取完毕;对于va_arg第一个参数是栈,第二个是获取数的类型;对于va_start第一个参数是栈,第二个是函数的第一个形参用来获取实参;va_end只有一个参数是栈。

    10:注意,调用省略符号的函数时第一个参数不应该是引用形式参数。

    11:main的成功与否,想独立与机器,则用头文件中的cstdlib中的EXIT_FAILURE和EXIT_SUCCESS。

    12:返回值不是引用时,是返回值复制给临时对象,可以有局部变量;若是引用则不是复制值,不能是局部变量;临时对象出现在函数调用处。

    13:引用返回值是左值,理解为函数调用处是构造了一个临时对象,而该对象是某个值的引用,相当于一个引用变量,故而可以被赋值;而若不是引用返回值,则返回只是个临时对象,则过了此句后会自动注销的,故为右值。

    14:默认实参,若在声明中指定,则包含该头文件就可以用;但是若在定义中指定,则只是在该文件源中生效,建议放头文件中。

    15:内联函数定义放在头文件中,可以多次定义,但是同文件源中只有一次。

    16:函数指针中,对于直接引用函数名字和在函数名取地址符是等效的,但是在作为某个返回值时,不能自动转为地址了。

  • 相关阅读:
    .net core读取appsettings.config中文乱码问题
    vs2017错误:当前页面的脚本发生错误
    VS Code中无法识别npm命令
    Visual Studio报错/plugin.vs.js,行:1074,错误:缺少标识符、字符串或数字
    记录一次在生成数据库服务器上出现The timeout period elapsed prior to completion of the operation or the server is not responding.和Exception has been thrown by the target of an invocation的解决办法
    Java集合框架
    java hash表
    Java Dictionary 类存储键值
    java数据结构 栈stack
    java封装
  • 原文地址:https://www.cnblogs.com/miner007/p/4042301.html
Copyright © 2011-2022 走看看