复杂的类型使用引用,可以减少拷贝而提高性能;
如果不希望引用被修改则带上const标志。
但是对于简单类型,如果是处于性能原因而使用引用,
那肯定是弄巧成拙的。因为使用引用之后,多了一些额外的索引标志,
这些的带来的消耗在时间和空间上都比不用引用要多一些。
使用gcc -S x.cpp -o x.s得到下列的代码的汇编的大小
int add(int a, int b) { return a + b; }
963Bytes
int add(const int &a, const int &b) { return a + b; }
1047Bytes
int add(const int a, const int b) { return a + b; }
963Bytes
汇编的具体内容就不深入了。光看这个size就知道什么写法是比较靠谱的了。
对于基本类型不使用引用,还有一个原因,看以下代码
int a = fun1(); int b = a + 1; fun2(b); or int a = fun1(); fun2(a + 1);
fun2(***)如果是使用引用参数的话就会报错,因为a + 1是一个表达式,不是一个变量。
相关推荐
Java中的基本类型和引用类型变量的区别
值类型和引用类型的区别: 似乎“值类型和引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第... C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型。
①引用类型除了基本类型就是引用类型,也就是对象,引用类型的值是可变的引用类型可以拥有属性和方法,属性又可以包含基本类型和引用类型引用类型的值是同时保存在栈内存和
C#中除了基本类型以外的类型都是引用类型。引用类型的特点是,在堆栈中存储的是该引 用类型指向的堆中的“地址”。所以,当引用类型之间相互赋值的时候,只是将堆栈中的值 (可以理解为所指向的“堆”地址)相互赋值...
ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。...
有基本类型和引用类型,他们是区别是一个有固定空间存在于栈内存中,一个没有固定空间保存在堆内存中并且在栈内存中保存了一个指向实现位置的指针。 市面上很多书都有不小的篇幅在讲。这篇文章会讲几个方面,这些...
早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的值的类型。在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值。 (1)原始值 存储在栈中的简单...
java.applet:包含一些用于创建Java小应用程序的类。...java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。
14.java学习第十四章——super()关键字+实例变量(含引用数据类型做实例变量)和局部变量的个人总结+基本数据类型和引用数据类型的存放位置.pdf
基本数据类型是可以用“==”进行比较,而引用数据类型则不可以,一般是通过equals方法来实现比较。 二 、再说说基本数据类型与引用数据类型的区别? 特点: 1、从概念方面来说 基本数据类型:变量名指向具体的...
前两天看到kraaas大神的关于基本数据类型和引用类型的区别的文章觉得写得非常不错,就想着在其...任何方法都无法改变一个基本类型的值,比如一个字符串: 通过这两个例子,我们会发现原先定义的变量name的值始终没有发
基本数据类型与引用数据类型在内存结构上的区别
基础类型没有堆的概念,堆只针对引用类型。 所有基础类型都是以key-value形式存放在栈中,其中,基础类型的值不可变,除非是重新赋值, 比如: var a = "1234"; a[0] = "k";//对值本身修改,无效 console.log(a)//...
JavaScript高级程序设计之基本引用类型 目录 1、Date2、RegExp3、原始包装类型 1、Date 2、RegExp 3、原始包装类型 前言: 引用值(对象)都是某个特定的引用类型的实例对象,例如 Date类型、Function类型,...
在JavaScript的基本类型中的数据可以是常量,也可以变量。由于JavaScript采用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的。当然也可以先声明该数据的类型,它是...
NULL 博文链接:https://longxingtx520.iteye.com/blog/1439423
值类型转为引用类型称成为装箱,引用类型转为值类型称为拆箱 以下是值类型和引用类型对照表 从上图可以简单看出:string,Object,数组,class是引用类型,简单类型,枚举,结构是值类型。 二、代码展示 定义一个类...
基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段;引用类型值指由多个值构成的对象。当我们把变量赋值给一个变量时,解析器首先要做的就是确认这个值是...
一、基本类型和引用类型 基本的数据类型有5个:undefined,boolean,number,string,null typeof null; //"object" typeof undefined; //"undefined" typeof 1; //"number" typeof false //"boolean" typeof "1" /...