在做数据结构迷宫实验的时候,要生成一个二维数组存储迷宫数据,为了保证程序的模块化,将生成部分单独放进一个函数migongsc()里。大致代码如下:问题的关键就集中在了如何将主函数中声明的二维数组migong[8][9]传递到自定义函数中去。耗费了一个晚上的时间,我总共整理出了三种办法:方法1:模拟编...
分类:
编程语言 时间:
2015-12-29 06:14:41
阅读次数:
197
非容器对象:NSStringNSMutableString不可变对象复制:copy是指针复制(浅拷贝);mutableCopy就是对象复制(深拷贝)。可变对象复制:都是深拷贝,但是copy返回的对象是不可变的。copy浅copy,不会产生新的地址,两个指针指向同一地址深copy,会产生新的地址,两个...
分类:
其他好文 时间:
2015-12-25 15:00:37
阅读次数:
162
本来 定义一个数组 int vec[10],调用函数void fun(int vec[]),fun(vec)时数组传递的是地址,函数中数组的变化能够反映到实参中来。所以以为定义一个 struct cut{int num;int vec[10];} cut1;,变量时,调用 void fun(cut ...
分类:
其他好文 时间:
2015-12-24 00:20:25
阅读次数:
156
首先,String和StringBuffer主要有2个区别:(1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值(2)String类对象的性能远不如...
分类:
其他好文 时间:
2015-12-23 10:40:56
阅读次数:
137
主要概念:可见性、重排序、失效数据、最低安全性、发布、逸出、线程封闭(Ad-hoc、栈封闭、ThreadLocal类)、不变性、Final域、事实不可变对象、1、在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整。在缺乏足够同步的多线程程序中,要想对内存操作的...
分类:
编程语言 时间:
2015-12-15 06:20:51
阅读次数:
306
一、元组tuple特性1、有序集合2、通过偏移来取数据3、不可变对象,不能在原地修改内存,没有排序、修改等操作元组不可变的好处:保证数据的安全,比如我们传给一个不熟悉的方法,确保不会改变我们的数据从而导致程序问题。二、集合:集合是没有顺序的概念,所以不能用切片和索引操作1、创建集合:可变的set()...
分类:
编程语言 时间:
2015-12-11 23:54:30
阅读次数:
170
1.什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。 不能改变状态的意思是:不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型...
分类:
编程语言 时间:
2015-12-06 20:51:05
阅读次数:
259
1. 不要使用可变对象作为函数默认值代码如下:In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list ...: In ...
分类:
编程语言 时间:
2015-12-04 10:40:44
阅读次数:
249
一、 函数参数传递机制的基本理论 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。以下讨论称调用其他函数的函数为主调函数,被调用的函数为被调函数。 值传递(passl-by-value)过程中,被调函数.....
分类:
其他好文 时间:
2015-11-30 07:16:11
阅读次数:
238
常见错误1:在函数参数中乱用表达式作为默认值Python允许给一个函数的某个参数设置默认值以使该参数成为一个可选参数。尽管这是这门语言很棒的一个功能,但是这当这个默认值是可变对象(mutable)时,那就有些麻烦了。例如,看下面这个Python函数定义:123>>> def foo(bar=[]):...
分类:
编程语言 时间:
2015-11-28 11:53:58
阅读次数:
237