-
2022-03-14 11:27:00
作用:常量引用主要用于修饰函数形参,防止误操作。
在函数形式参数列表中,可以使用const修饰形参,防止形参改变实参。
void fun(const int &val) { //val = 160; //不可修改,val是一个常量引用 cout << "val = " << val << endl; } int main(int argc, const char *argv[]) { //使用场景:一般修饰形参使用 //int &ret = 10; //错误 左值为变量,右值为常量 //引用必须引用一块合法的空间,ret = 20;等价于给常量赋值 const int &ret = 10; //正确 左右值均为常量 /* int temp = 10; const int &ref = temp; ref -->别名 temp-->原名 */ int height = 180; fun(height); return 0; }
更多相关内容 -
C++常量详解二(常量形参,常量返回值,常量成员函数)
2021-01-20 05:50:191.常量形参 当形参有顶层const或者底层const的时候,传给它常量对象或者...*this的默认类型是type *const this,this指针有一个顶层const,但并没有底层const,由于低层const的限制,有底层const的实参不能拷贝给默认 -
调用函数时,什么情况下不能给函数的参数赋常量
2021-05-21 00:40:22满意答案赞v_安子诺2017.09.01采纳率:48%等级:9已帮助:215人函数名后面的形式参数表列不可以是常量!C语言中函数有三个概念:定义 声明 调用函数定义:自定义一个函数,并完成相应的代码实现,如:int max( int a...满意答案
赞v_安子诺
2017.09.01
采纳率: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语言中以下不正确的说法是 A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或...
2021-05-20 06:06:46形参可以是常量、变量或表达式 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、孙子用哪一种物象来比喻他的战术思想( )
能使血糖降低的激素是
多核苷酸链中核苷酸的连接方式是
-
形参中使用常量引用,常量,普通引用的区别
2019-04-10 18:56:23C++中的引用,给我们提供了一种区别于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
-
Python你知道多少?教你玩转Python变量与常量!
2020-12-10 08:49:34变量与常量变量:在程序运行过程中,值会发生变化的量常量:在程序运行过程中,值不会发生变化的量无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。这里有一点需要注意的是,在python中是不... -
C++常量详解(二)常量形参,常量返回值,常量成员函数
2016-10-08 17:46:271.常量形参 当形参有顶层const或者底层const的时候,传给它常量对象或者非常量对象都是可以的,在这里我们主要考虑形参无const, 而实参有const的情况,其实这里也十分简单,只需要记住一点:底层const的限制,就... -
实参,形参是什么?区别?
2020-07-14 11:12:54cube()被调用时将创建一个名为x的double变量(x为形参)并将x的值初始化为m的值。cube()对x进行操作时,将不会影响m的值。 区别 1.实参可以是常量,变量,表达式,函数等,但都必须是确定的值。 2.形参用于接收实参... -
2-2 【python基础】python教程|python还能支持常量吗,如何让python支持常量定义
2020-12-10 08:49:34而跟变量不同的是,常量是值不可变的量。比如圆周率 π 保留两位小数是固定的 3.14,那我们就可以称之为常量。但请注意,跟其他编程语言不同的是,python 天生就没有关于常量的定义方法。那怎么办呢?在 python 当中... -
C++——将map作为形参传递时,能使用常量引用吗?
2018-10-25 13:42:33void test(const unordered_map&...原因:map的[]运算符会在索引项不存在的时候自动创建一个对象,而常量不能改变。 解决办法:使用迭代器替换即可,如下例所示。 void test(const unordered_map&l... -
C#知识点:特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式
2020-12-23 13:52:43例如我在使用Unity的MenuItem特性时,报了错"特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式" 经过几次定位,原因是因为我的字符串不是用const定义... -
C++ 指针与引用、指向常量的指针、常量指针、常量引用做函数形参
2018-08-04 23:07:310. 指针与引用 指针是对象,即在内存中占有实际内存。而引用只是一个对象的别名,本身不占有...指向常量的指针不能用于改变所指对象的值。 const double pi = 3.14; const double *cptr = &pi; // 正... -
常量引用与const修饰的引用形参
2021-10-07 23:53:32常量引用:原变量不能通过此引用(别名)修改。 形式: char ch = 'a';...增加输入参数的灵活性:普通引用形参(没用const修饰)不允许输入参数为const修饰的值(常量引用或常量)或右值,用const修饰后则... -
什么是形参?什么是实参?
2020-05-13 21:27:42什么是形参?什么是实参? 什么是形参? 形参全称叫做“形式参数”,也是一个虚拟的参数,在定义方法的时候使用的参数,形参是方法被调用时用于接收实参值的变量。 什么是实参? 实参全称叫做“实际参数”,顾名思义... -
C++函数引用形参何时是常量引用
2020-02-06 11:35:15一,如果需要修改参数内容,则设置为普通引用类型 二. 如果不需要修改参数内容则最好设置为常量引用... 2)显示了该函数所能接受的实参类型无法把const对象,字面常量或者需要类型转换的对象传递给普通的引用形参 ... -
常量引用,可防止形参改变实参
2021-05-30 22:06:17void showValue(const int& v) { // 加了 const 修饰形参,则该形参不能被修改值 //v += 10; // 由于上面加了 const ,因此这行会报错; 如果上面不加 const,则这里会修改实参。 cout ; } int main() { //函数... -
形参和实参是什么
2022-04-08 10:28:04实参可以 是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有 确定的值,以便把这些值传送给形参。 函数的形参和实参具有以下特点: 1.形参变量只有在被调用时才分配内存单元,在... -
浅谈c++中形参不能改变实参
2020-04-03 18:48:52c语言我们都知道形参不能改变实参,实参能改变形参,我们能保证自己很熟悉这个概念吗,能不能保证自己每次都不犯错,掉坑里。 #include <iostream.h> #include <string.h> void fun( char *s) { char a... -
python什么是形参?
2021-11-21 19:40:54函数调用结束返回主调用函数后则不能再使用该形参变量。 2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,... -
const形参和实参
2021-05-22 01:39:30当形参是const时,必须要注意关于顶层const的讨论。如前所述,顶层const的作用于对象本身:const int ci=42; //不能改变ci,const是顶层的int i=ci; //正确:当拷贝ci时,忽略了它的顶层constint *const p=&i; ... -
final修饰方法的形参是存在常量池么?在内存中的生命周期是怎么样的呢?
2016-11-23 07:00:46final修饰方法的形参是存在常量池么?在内存中的生命周期是怎么样的呢? ``` interface InnerClass { int getNum(); } public class OuterClass { public InnerClass getInnerClass(final int x)... -
const char * 类型的实参与 char * 类型的形参不兼容_C++ 中的 const(指针常量与常量指针)
2020-11-23 13:19:51#define宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。const 防止修改,起保护作用,增加程序健壮性void 可以节省空间,避免不必要的内存分配const定义常量从汇编的角度来看,只是给出了对应的内存... -
C++形参与实参的区别实例解析
2021-01-20 07:11:36形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送... -
什么是形参?实参?命令行参?可变参数?
2020-08-24 08:39:04什么是形参?实参?命令行参数?可变参数? 今天读文章遇到的,有些概念不太清楚,Mark一下! 形参 形参是parameter,在定义方法时后面跟的参数就是形参,全称为“形式参数”。 实参 实参是argument,在调用方法时... -
形参和实参是什么?
2017-12-18 20:33:08形参和实参是什么? -
C语言中形参和实参详解及实例代码
2020-12-26 08:05:48形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被... -
Mat类与形参、引用、常量形参和常引用
2019-10-06 11:18:32常量形参:值被改变了,禁止改变指向 常引用:值被改变了,禁止改变指向 分析过程代码: #include<iostream> #include<opencv2/opencv.hpp> using namespace cv; using namespace std; void ... -
函数形参为什么使用const引用(常引用)
2017-09-05 09:45:322、形参的对象为顶层const时,传入的实参既可以是const值,又可以是非const值,若是底层const,传入的实参只能是const的值。 顶层 const 表示的是指针本身是一个常量, 底层const 表示的是指针所指的对象是一个常量... -
常量引用
2021-02-19 13:21:261.作用:常量引用主要用来修饰形参,防止误操作 2.在函数形参列表中,可以加 const 修饰形参,防止形参改变实参 #include<iostream> using namespace std; //使用场景 用来修饰形参,防止误操作 void ...