C++学习笔记(13)
1.当cin遇到文件结束符(windows中为Ctrl+Z,Unix中为Ctrl+D)或无效输入时才能使cin态无效;
if,while的条件判断句中出现cin实际上是判断cin这个流对象的合法性,因此当a定义为int,cin>>a输入0是判定正确的。
2.函数的返回类型
return(表达式);
其中圆括号可以省略,表达式的类型必须与函数原型定义的类型相对应,可以为数值、字符、指针或引用。
当函数定义为void型时,return语句不带返回“表达式”,或者不使用return语句。
一个函数体内可以有多个return语句,但是只会执行一个。
return语句的作用就是把“表达式”的值通过匿名对象返回调用点并中断函数执行。
3.返回基本类型。
函数原型:
类型 函数名(形参表);
4.返回指针类型(指针函数):函数被调用后,使用return语句返回一个对象的指针值(地址表达式)。
函数原型:
类型 * 函数名(形参表); //为了约束对实参的访问,还可以在类型前加const;
指针函数返回对象的指针不需要复制产生实际返回对象的值,可以节省匿名对象造成的时空消耗;
指针函数不能返回局部变量的指针,因为局部变量是函数运行时建立的临时对象,函数运行结束,系统释放局部变量。
5.返回引用类型:不生产实际返回对象的副本,返回时的匿名对象是实际返回对象的引用。返回引用比返回指针更直接,可读性更好。
函数原型:
类型 & 函数名(形参表)
函数返回引用需要依托一个对象,因此和返回指针的函数一样,返回对象不能是函数体内的局部变量。
返回对象可以是非局部对象或静态对象;
返回引用函数的调用本身就是对象的引用,就像返回对象的标识名,一i那次可做“左值”。(例:count(x)++ 😉