精华内容
下载资源
问答
  • 满意答案赞v_安子诺2017.09.01采纳率:48%等级:9已帮助:215人函数名后面的形式参数表列可以是常量!C语言中函数有三个概念:定义 声明 调用函数定义:自定义一个函数,并完成相应的代码实现,如:int max( int a...

    满意答案

    00e27ab806e4881f8254fe7ae8741834.png

    赞v_安子诺

    2017.09.01

    00e27ab806e4881f8254fe7ae8741834.png

    采纳率:48%    等级:9

    已帮助:215人

    函数名后面的形式参数表列不可以是常量!

    C语言中函数有三个概念:定义 声明 调用函数定义:自定义一个函数,并完成相应的代码实现,如:

    int max( int a, int b ) //小括号中的 a, b被称为形参,用来对应相应的实参,因为这里的形参可对应任意的实参值,所以,必须以变量形式体现。

    {

    return (a>b)?a:b ; //返回a b中的大数

    }函数声明:用来描述一个函数的格式,在调用函数前列出。如:

    int max( int , int ) ; //这里可以省略形参变量,只列出形参类型即可。函数调用:调用一个已实现的函数,完成相应的功能,如:
    void main()

    {

    int x=5,y=10 ;

    printf( "max is %d\n", max(x,y) ); //这里的x,y被称为实参,可以是变量,也可以是常量。

    printf( "max is %d\n", max(5,10) ); //常量作为实参。

    }

    00分享举报

    展开全文
  • 主要介绍了C++常量详解二(常量形参常量返回值,常量成员函数),需要的朋友可以参考下
  • void test(const unordered_map&...原因:map的[]运算符会在索引项不存在的时候自动创建一个对象,而常量不能改变。 解决办法:使用迭代器替换即可,如下例所示。 void test(const unordered_map&l...

    写C++的时候有一个好习惯:写函数的时候,如果确定自己在函数内不会对某个形参进行改变,则应将其声明为常量应用类型。

    这是因为引用类型的传递速度较快,只需要传递一个地址指针。如果不使用引用类型,则在调用函数的时候会使用拷贝函数将形参复制为实参的值,实在是比较慢了。

    而加上const关键字是为了防止自己一不小心在函数内部对该形参进行了更改。

    考虑如下代码: 

    void test(const unordered_map<int,int> &um){
      if(um[1]){
        //一段测试代码
      }
    }

    上述代码将不能通过编译。

    原因:map的[]运算符会在索引项不存在的时候自动创建一个对象,而常量不能改变。

    解决办法:使用迭代器替换即可,如下例所示。

    void test(const unordered_map<int,int> &um) {
    	unordered_map<int, int>::const_iterator it = um.begin();
    	for (; it != um.end(); ++it) {
    		//balabala
    	}
    }

    注意:

    因为传入的um参数是常量类型的,因此um.begin()也是常量指针,因此只能将其赋值给常量指针const_iterator。

    展开全文
  • C++中的引用,给我们提供了一种区别于C指针的形参定义方式。一般我们可以将其定义 1)普通引用 void foo(int &n);...以普通引用为形参的函数,一般会更改实参的值,比如increment(int &...

    C++中的引用,给我们提供了一种区别于C指针的形参定义方式。一般我们可以将其定义为

    1)普通引用

    void foo(int &n);

    2)常量

    void foo(const int n);

    3)常量引用

    void foo(const int& n);

    三种方法用途不一样,都可以通过编译。

    以普通引用为形参的函数,一般会更改实参的值,比如increment(int &n)等;以常量以及常量引用为形参的函数,一般不对实参进行修改。需要注意的是,当函数的功能确定后,不能把常量引用和普通引用混淆,虽然编译可以通过,运行也没有错误,但是会对函数的安全性以及功能造成影响:

    1)如果一个本该是常量引用的形参定义成了普通引用,那么程序员会误认为这个形参可以修改。而且,在调用该函数的时候,会产生意想不到的错误。比如:

    int getSize1(string &str){
        return str.size();
    }
    int getSize2(const string &str){
        return str.size();
    }
    void main(){
        getSize1("helloworld");//报错
        getSize2("helloworld");//正确
    }

    显然,getSize2才是符合正常函数思维的实现。

    2)常量引用为形参时,形参指向实参的空间,而常量为形参时,编译器会给形参重新分配空间。

    void foo1(const int n){
        printf("%x\n", &n);
    }
    
    void foo2(const int &n){
        printf("%x\n", &n);
    }
    int main(int argc, char *argv[]){
        int n = 1;
        printf("%x\n", &n);
        foo1(n);
        foo2(n);
        return 0;
    }
    
    //输出:
    //e25f58cc
    //e25f58ac
    //e25f58cc

     

    展开全文
  • 形参可以是常量、变量或表达式 C. 实参可以任意类型 D. 形参应与其对应的实参类型一致更多相关问题()是调整商事关系的法律规范。18.下列属于“政善治”的观点是17、周易是哪个朝代的易经?称为可变脂的是衡量一...

    【单选题】在C语言中以下不正确的说法是

    A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型 D. 形参应与其对应的实参类型一致

    更多相关问题

    ()是调整商事关系的法律规范。

    18.下列不属于“政善治”的观点是

    17、周易是哪个朝代的易经?

    称为可变脂的是

    衡量一个人道德水平高低的主要标志是看其道德行为。

    普通民众参与法律实践培养法治思维的方式和途径有很多,但不包括()。

    测定血清中ALT活性可反映哪种组织器官的功能

    密码子存在于

    某一核酸有如下的碱基组成:A=23%,G=22%,C=39%,T=16%。该核酸可能是

    18、“神头岭”战役中我方旅长的名字是( )

    1分子葡萄糖经无氧氧化可净生成几分子ATP

    γ-氨基丁酸来自哪种氨基酸

    脂肪酸彻底氧化的产物是

    某一核酸有如下的碱基组成:A=23%,G=22%,C=39%,T=16%。该核酸可能是

    γ-氨基丁酸来自哪种氨基酸

    ()是调整商事关系的法律规范。

    DNA的基本组成单位不包括

    关于同工酶的叙述正确的是

    下列不是糖异生原料的是

    脂肪酸彻底氧化的产物是

    一段单链DNA模板序列为5,-ATTGCTA-3,,合成与其互补的子链DNA序列为

    2.太极拳的练功要领不包括:

    NAD+分子结构中含有的维生素是

    称为可变脂的是

    最普遍进行的生物转化第二相反应是代谢物与

    含蛋白质比例最多的血浆脂蛋白是

    乙酰辅酶A的去路不包括

    司法活动的最高价值追求是()。

    衡量一个人道德水平高低的主要标志是看其道德行为。

    由法律直接规定继承人的范围、继承顺序、遗产分配原则的财产继承制度是()。

    能使血糖降低的激素是

    丙酮酸参与下列哪种物质代谢过程

    20、孙子用哪一种物象来比喻他的战术思想( )

    能使血糖降低的激素是

    多核苷酸链中核苷酸的连接方式是

    展开全文
  • 1.常量形参形参有顶层const或者底层const的时候,传给它常量对象或者非常量对象都是可以的,在这里我们主要考虑形参无const, 而实参有const的情况,其实这里也十分简单,只需要记住一点:底层const的限制,就...
  • 一,如果需要修改参数内容,则设置普通引用类型 二. 如果需要修改参数内容则最好设置为常量引用... 2)显示了该函数所接受的实参类型无法把const对象,字面常量或者需要类型转换的对象传递给普通的引用形参 ...
  • C++ 形参为什么加入const 什么鬼? 本文参考博客:... 出错纠正:右图中形参前加上 const 即可。 ... 总结congst:形参里限定为const表明传入的形参必须为常量也就以为着传入的参数不能被改变这是一种保...
  • 什么是形参什么是实参?

    千次阅读 多人点赞 2020-05-13 21:27:42
    什么是形参什么是实参? 什么是形参形参全称叫做“形式参数”,也是一个虚拟的参数,在定义方法的时候使用的参数,形参是方法被调用时用于接收实参值的变量。 什么是实参? 实参全称叫做“实际参数”,顾名思义...
  • Swift的可变形形参, 常量形参, 变量形参, In-Out形参
  • 常量形参:值被改变了,禁止改变指向 常引用:值被改变了,禁止改变指向 分析过程代码: #include<iostream> #include<opencv2/opencv.hpp> using namespace cv; using namespace std; void ...
  • 拷贝构造函数的形参必须是引用,这是编译器强制规定的,否则不能编译通过。 为什么? 调用拷贝构造函数的三种情况 用已知的对象拷贝生成新对象 以值传递的方式传入函数 函数的返回值是以值传递的方式 形参为...
  • final修饰方法的形参是存在常量池么?在内存中的生命周期是怎么样的呢? ``` interface InnerClass { int getNum(); } public class OuterClass { public InnerClass getInnerClass(final int x)...
  • 引用的目的是修改,const的目的是不许修改,形参用const &不是...引用的目的是作为形参的别名,用引用来传递参数不会有副本存在,const的目的是常量希望改变形参的别名 帮你总结一下:为了避免调用拷贝构造函数
  • #include #include void abc(int *p) { std::cout*p; delete p; } int main() { abc(new int(5)); system("pause"); return 0; } 大概就是这么个做法,用int...函数里用完了,再把那部分内存及时回收一下~
  • const总结二 之 常量函数形参

    千次阅读 2013-10-04 16:42:19
    总结:常量函数形参传递参数,保证参数在函数体里面受修改。有时候,如果形参是指针形参或者引用形参,或者是字符数组,想函数体对其进行修改,那么可以采用常量函数形参。 实例: 定义EObject类,该类有width和...
  • 0. 指针与引用 指针是对象,即在内存中占有实际内存。而引用只是一个对象的别名,本身占有...指向常量的指针不能用于改变所指对象的值。 const double pi = 3.14; const double *cptr = &amp;pi; // 正...
  • cube()被调用时将创建一个名x的double变量(x为形参)并将x的值初始化为m的值。cube()对x进行操作时,将不会影响m的值。 区别 1.实参可以是常量,变量,表达式,函数等,但都必须是确定的值。 2.形参用于接收实参...
  • 例如我在使用Unity的MenuItem特性时,报了错"特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式" ​​​​​​​ ​​​​​​​ 经过几次定位,原因是因为我的字符串不是用const定义...
  • 2、形参的对象顶层const时,传入的实参既可以是const值,又可以是非const值,若是底层const,传入的实参只能是const的值。 顶层 const 表示的是指针本身是一个常量, 底层const 表示的是指针所指的对象是一个常量...
  • 形参和实参是什么

    千次阅读 2017-12-18 20:33:08
    形参和实参是什么
  • c语言我们都知道形参不能改变实参,实参改变形参,我们保证自己很熟悉这个概念吗,能不能保证自己每次都犯错,掉坑里。 #include <iostream.h> #include <string.h> void fun( char *s) { char a...
  • Java形参跟实参是什么?

    千次阅读 2019-03-22 14:25:06
    形参:全称“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。 形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,565
精华内容 29,426
关键字:

形参为什么不能是常量