07 2012 档案
摘要:因为数组存储在内存中连续的位置上,当使用一个数组在运行时才知道长度的情况下,我们就可以使用动态内存分配。 对于声明时就指定长度的数组来讲,主要有以下几个缺点: 1、需要使用的元素超过数组的长度 2、将数组声明得较大,但是某些情况下的数组元素较少时,浪费比较大 3、使用的元素超过数组长度时,程序必须以一种合理的方式做出相应,而不应该导致异常。 显然动态内存可以让我们在使用的时候不用在意元素的数量大小,我们可以在运行时,使用malloc函数来获取动态内存,如:10、20、30个int所需的内存。 但是malloc并不是每次都能将你所需要的内存返回给你,当某些极少数的情况下,mall...
阅读全文
摘要:聚合数据类型能够同时存储超过一个的单独数据,C提供了两种类型的聚合数据类型,数组和结构。数组是相同类型的元素的集合,结构则是不同类型的元素的集合。 结构属于标量类型,因此可以像对待其他标量类型那样执行相同类型的操作。 结构声明如下:struct tag { member-list } variable-list; 请看以下声明:struct { int i; char c; float f;} x[20], *y; 以上声明创建了x和y两个变量,x是一个数组,包含20个结构,而y是一个指针,指向这个类型的指针。两个声明被编译器当作两种不同的类型,即使他们的成员列表...
阅读全文