ECMAScript的变量是松散类型的,在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。基本类型是按值访问的,因为可以操作保存在变量中的实际的值。 引用类型的值是保存在堆内存中的对象,JavaScript 不容许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时 ...
分类:
编程语言 时间:
2016-04-24 12:41:41
阅读次数:
186
之前写拷贝构造函数的时候,以为参数为引用,不为值传递,仅仅是为了减少一次内存拷贝。然而今天看到一篇文章发现自己对拷贝构造的参数理解有误。 参数为引用,不为值传递是为了防止拷贝构造函数的无限递归,最终导致栈溢出。 下面来看一个例子:class test{public: test() { cout te... ...
分类:
编程语言 时间:
2016-04-21 16:34:15
阅读次数:
251
原文链接:http://www.cnblogs.com/yanlingyin/ 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入, 不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 ...
分类:
编程语言 时间:
2016-04-21 01:29:06
阅读次数:
218
1 值传递 值传递实际上是,拷贝实参的值传递给形参,常用于“小对象” (small objects) 调用该函数: <Effective C++> 中提及,值传递适用的“小对象”为:内置类型(built-in types),STL迭代器,函数对象类型(function object types) 2 ...
分类:
编程语言 时间:
2016-04-20 07:08:50
阅读次数:
234
GNU 编译器(GCC)提供了很多 C 语言扩展,编译器会使用该信息生成更高效的机器代码。 内联函数 避免内联 纯函数 返回值只受函数参数或 nonvolatile 全局变量影响。 常函数 常函数是一种严格的纯函数。常函数不能访问全局变量,参数不能是指针类型。因此,常函数的返回值只和值传递的参数值有 ...
分类:
编程语言 时间:
2016-04-16 16:40:43
阅读次数:
194
Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值
C中比较难的这一块,大概就是指针了,所以大家还是多翻阅一下资料,当然,如果只是想了解一下,看本篇也就够了,不过我也尽量陈述的很详细
一.指针
要说指针,其实通俗易懂的话来说,他应该是保存内存地址的一个变量,我们来看一下小例子
#include
#include...
分类:
移动开发 时间:
2016-04-16 14:03:23
阅读次数:
198
扩展 将拷贝构造函数声明为explicit,则会阻止隐式拷贝构造函数的调用.隐式拷贝构造函数的调用主要发生在三个点: 1.一个对象作为函数参数,以值传递的方式传入函数体. 2.一个对象作为函数返回值,以值传递的方式从函数返回. 3.以AAA = xxx的方式创建对象AAA,xxx为与AAA为同类型的 ...
分类:
编程语言 时间:
2016-04-15 20:19:24
阅读次数:
182
1、一些定义 值传递:把实际传入参数的值,在内存中赋值一份 引用传递:传入的是实际参数的地址 2、传递基本类型的参数 因为Java是值传递,那就不难理解下面的代码不交换任何值 3、传递引用变量的参数 Java都是通过引用来操作对象的,所有指向对象的变量都是引用,然而,Java不会把引用传递给方法的参 ...
分类:
编程语言 时间:
2016-04-15 18:25:05
阅读次数:
188
昨天朋友问我,如果一个java局部对象在调用jni的时候,如果java层没有引用它,这个对象会不会因为被jni层引用不被GC,导致内存泄漏。我大概想了一下,说不会。当时想的很简单,c里面没有像java一样的类似的内存回收机制,java层进入jni时值传递,不会导致引用产生。实事上比想象的复杂的多,而 ...
分类:
移动开发 时间:
2016-04-14 14:02:18
阅读次数:
141
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递! 回 ...
分类:
编程语言 时间:
2016-04-09 15:12:49
阅读次数:
228