C++ primer学习笔记_6_函数---函数定义、参数传递
1、
习题参考:
6.14 举一个形参应该是引用类型的例子,再举一个形参不能是引用类型的例子。
答:
形参使用引用类型的情况:(1)避免拷贝传递大对象的时候,这里的string对象s;(2)当需要从函数内部返回值的时候
string::size_type find_char(const string &s,char c,string::size_type &occurs) 
{
	auto ret = s.size();	
	occurs = 0;
	for (decltype(ret) i = 0; i != s.size(); ++i){
		if (s[i] == c){
			if (ret == s.size()){
				ret = i;
			}
			++occurs;
		}
	}
	return ret;
}2、顶层const作用于对象本身
const int ci = 42; // 不能改变ci,const是顶层的
int i = ci; //正确:当拷贝ci时,忽略了它的顶层const
int * const p = &i; //const是顶层的,不能改变p的值
*p = 0;  //正确,通过p改变其指向的对象的值是允许的当用实参初始化形参的时候会忽略掉顶层const。
void fcn(const int i)
{
        /* fcn can read but not write to i */
}
void fcn(int i)   // error: redefines fcn(int)
{
        /* ...   */
}3、顶层const和底层const
顶层const:表示指针本身是一个常量;
底层const:表示指针所指的对象是一个常量。
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号