随便一些

来源:互联网 发布:什么是淘宝最低价 编辑:程序博客网 时间:2024/04/29 21:21

bool test(string &s)
{
return s.empty();
}

这个函数本身是合法的,但是有些局限性,比如如果传递常量字符串就不行,

比如:test("我爱张柏芝")就必然出错

因为 非cosnt的形参只能与完全同类型的非const的对象关联。

所以应该改为

 bool test(const string &s)
{
return s.empty();
}

比较合理。

 

通过引用传递数组:

void xxoo(int (&arr)[10]) {/*.....*/}

int main()
{
   int i=0,j[2[]={0,1};
int k[10]={0,1,2,3,4,5,6,7,8,9};
xxoo(&i); //error
xxoo(j);  //error
xx00(k);//ok
return 0;
}

 

PS:跟其他类型一样,数组形参也可以声明为数组的引用。
如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。
这种情况下,数组大小成为形参和实参的一部分。
编译器检查数组的实参的大小与形参的大小是否匹配。

 

主函数main的返回值
返回类型不是void的函数必须返回一个值,但此规则有一个例外情况:允许主函数main没有返回值就可结束。如果程序执行到主函数main的最后一个语句都还没返回,那么编译器会隐式的插入返回0的语句。
        关于主函数main的另一个特别之处在于如何处理它的返回值。我们知道,可将主函数mai返回的值视为状态指示器。返回0表示程序运行成功,其他大部分返回值则表示失败。非0返回值的意义因机器不同而不同,为了使返回值独立于机器,cstdlib头文件定义了两个预处理变量,分别用于表示 程序运行成功和失败:

#include<cstdlib>
int main()
{
if(some_failure)
return EXIT_FAILURE;
else
return EXIT_SUCCESS;
}
代码不再需要使用那些依赖于机器的精确返回值。

 

原创粉丝点击