函数 函数定义、函数原型、函数调用
一些注意事项
普通参数传递是复制了一份,数组并不会复制,还是原始数据,小心操作
const可以在参数传递的时候保护数组,将其临时定义为常量,不可更改。
while(!cin>>temp) //bad input cin在判断语句中返回布尔值,如果输入和temp类型不匹配,返回假
目前了解到的关于使用指针的原因 :
数据比较大,传递的时候如果复制会增大运算量,所以采用指针传递存储地址,利用地址运算
引用,相当于一个人拥有两个名字,这两个名字指向同一个地址,类似于指针。在某些时候必须使用引用或指针当函数参数,用以修改指向的变量。比如int & b = a;或int * b = &a; 引用更适合用于结构和类。
将引用形参声明为const,避免无意中修改数据的错误,const在实参与形参不匹配时会产生临时变量,但不适合修改指向数据的值,只是可以直接使用数据,节省下复制的时间。
子函数free_throws & accumulate(free_throws & target, const free_throws & source) 返回的是一个free_throws结构的引用,如果函数名称前没有&,将返回一个结构的复制。
在子函数中创建的变量是临时的,函数完成调用后即销毁,所以不能返回指向这个临时变量的引用,会引发程序错误。