package cn.learn; /* 字符串缓冲区 -缓冲可提高效率 java.lang.StringBuilder 字符串的底层是一个被final修饰的数组,不能改变,是一个常量 private final byte[] value; 也就是说在字符串相加时,会生成多个字符串,占用空间效率低下 eg:String str = "a"+"b"+"c" 会有a,b,c,ab,abc五个字符串,jdk1.5以后用的是SttingBuilder.a…
//------------------------------------------------------------------------------------------------ 第一部分 C++内存分配 //------------------------------------------------------------------------------------------------ 一.关于内存 1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配…
前两天看程序,发现在某个函数中有下面这段程序: int n; //define a variable n int array[n]; //define an array with length n 在我所学的C语言知识中,这种数组的定义在编译时就应该有问题的,因为定义数组时,数组的长度必须要是一个大于0的整型字面值或定义为 const 的常量.例如下面这样 int array1[10]; //valid int const N = 10; int array2[N]; //valid int n…
PL/SQL变长数组是PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的.也即是说变长数组的下标固定下限等于1,上限可以扩展.下面给出具体的描述及其使用方法. 一.变长数组语法 //type_name 用于指定varray类型名,size_limit 定义varray元素的最大个数,element_type用于指定元素的数据类型  TYPE type_name IS {VARRAY | VARYING ARRAY} (siz…
创建变长数组类型 ) );  这个变长数组最多可以容纳两个数据,数据的类型为 varchar2(50) 更改元素类型的大小或精度 可以更改变长数组类型和嵌套表类型 元素的大小. ALTER TYPE varray_type MODIFY ELEMENT TYPE ) CASCADE; CASCADE选项吧更改传播到数据库中的以来对象.也可以用 INVALIDATE 选项使依赖对象无效 增加变长数组的元素数目 ALTER TYPE vrray_name MODIFY LIMIT CASCADE;…
关于PL/SQL中这三种数组的介绍,不想写了.转一篇日志吧…… 链接:http://www.blogjava.net/decode360/archive/2008/08/08/280825.html 作者:decode360 补充一点:假如从first到last的遍历过程中,存在被删除的占位符,如果使用则会报错.可用Exists(下标)的方法来判断是否存在.不能用is null 来判断…… 记录类型不能整体用null判断,我能想到并测试成功的方法是判断里面的NOT NULL字段(推荐主键)是否为…
C语言变长数组data[0] 1.前言 今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内核中,结构体中经常用到data[0].这样设计的目的是让数组长度是可变的,根据需要进行分配.方便操作,节省空间. 2.data[0]结构 经常遇到的结构形状如下: struct buffer { int data_len; //长度 char data[0]; //起始地址 }; 在这个结构中,da…
C99标准引入了变长数组,它允许使用变量定义数组各维.例如您可以使用下面的声明: ; ; double sales[rows][cols]; // 一个变长数组(VLA) 变长数组有一些限制,它必须是自动存储类的.这意味着变长数组必须在函数内部(包括主函数)或作为函数参量声明,而且声明时不可以进行初始化. 变长数组中的“变”并不表示在创建数组后可以修改其大小,变长数组的大小在创建后就是保持不变的,”变“的意思是说其维大小可以用变量来指定.…
下面这个结构体,可以在malloc的时候指定数据data的长度,这样的形式就是变长数组:typedef struct{ int data_len; char data[0];//或char data[];}buff_st_a; 用法:在下面的例子中,buff_st_b和buff_st_a用法相同,用数组名来表示数据地址,这时数据是紧挨着p_struct的,这样p_struct和p_data不用各自分开分配和释放,使用起来很方便:buff_st_p用指针来存储数据地址,这时数据的地址并不是紧挨着p…
处理二维数组的函数有一处可能不太容易理解,数组的行可以在函数调用的时候传递,但是数组的列却只能被预置在函数内部.例如下面这样的定义: #define COLS 4 int sum3d(int ar[][COLS], int rows) { int r, c, tot; tot = ; ; r < rows; r++) ; c < COLS; c++) tot += ar[r][c]; return tot; } 现在假定了如下的数组: ][]; ][]; ][]; 可以使用下面的函数调用: t…