网站建网站建设企业电话,建网站代码,购物网站开发技术,搜索引擎优化的方法和技巧1.函数形参和实参传递问题 函数参数传递有两种#xff1a;值传递(变量#xff0c;指针#xff09;,引用传递(使用别名#xff09;。 在形参和实参的传递过程中#xff0c;牵涉到大的类类型对象、容器类型对象或者不支持拷贝操作的对象时#xff0c;不适合采用值传递…1.函数形参和实参传递问题 函数参数传递有两种值传递(变量指针,引用传递(使用别名。 在形参和实参的传递过程中牵涉到大的类类型对象、容器类型对象或者不支持拷贝操作的对象时不适合采用值传递应使用引用传递的方式。另外实参形参传递的过程中系统会忽略形参的顶层引用(可用变量赋值给常量形参可以变量指针赋值给常量指针)因此不能使用顶层const来作为函数重载的判断依据。 如果函数中没有修改变量的行为可以将变量前添加const. 对于数组(性质不允许数组拷贝退化为指针)做函数的形参时会退化为指向首元素的指针多维数组会退化为数组指针(int matrix[2][3]---int (*matrix)[3])。退化后数组长度会被掩盖可以采用四种方法来得到数组的长度1数组有特定的标记结尾如C风格字符串2利用数组的两个库函数begin()和end();3)显示指定大小4定义一个指向数组的引用如 int (arry)[10}.
2.可变参数列表 可变参数列表表示在函数调用之前不知道实参的个数。针对这种情况C提供了三种解决办法 1当形参中的参数类型一致采用initializer_list同名头文件的标准库类型对象中的类型为常量可用列表初始化初始头文件中定义了默认/列表初始化拷贝/赋值运算size(),begin(),end()等成员函数。initializer_listintv1{1,2,3}; (2)参数类型不一致采用可变参数模板。 3采用省略符目的是为了兼容C接口,如C语言中的printf函数。具体格式如下 void foo(para_list,...); void foo(...);
3.函数返回值 不要返回局部对象的引用或者指针因为局部对象在结束调用之后会发生析构。 函数的返回类型决定函数是否可以做左值如果返回的是引用则可以作为左值。 函数返回值可以是花括号包围的值的列表用于函数返回值的临时量初始化。如果返回值为内置类型列表中最多一个值且sizeof(列表sizeof(返回值类型如果返回值是类类型则由类决定。 运行main()函数无函数返回值系统会隐式添加其他函数都需要有返回值(除void).返回值可以函数本身的一个调用(递归)main()函数不允许递归。