zoukankan      html  css  js  c++  java
  • 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:表示指针所指的对象是一个常量。



  • 相关阅读:
    CF700C Break Up
    CF865C Gotta Go Fast
    CF1559D2 Mocha and Diana (Hard Version)
    CF1500C Matrix Sorting
    排列计数机
    CSP-S 2021 退役记
    【做题记录】[NOIP2011 提高组] 观光公交
    【做题记录】构造题
    乱搞
    二维树状数组
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742639.html
Copyright © 2011-2022 走看看