14 12
发新话题
打印

请教几个数组的问题

请教几个数组的问题

看书看到数组这一部分,有些地方比较晕。

1、关于数组的顺序表示中*base,dim,*bounds基本上我能理解其含义,但*constants书上说是“数组映象函数常量基址”,我不太懂是什么含义?

2、在数组的基本操作中,有三个宏:va_start,va_arg和va_end分别代表什么含义?

3、这个问题是关于学习方法的,希望大家都不吝赐教:在复习数据结构的过程中,最重要的是什么,是掌握算法吗?好象有的部分给出了算法,有的部分根本没有。有什么比较好的复习方法呢?

谢谢[em04]

[em04][em04][em04][em04]

TOP

不是吧,点击都是10了,居然没人回答,555

TOP

我顶,居然没人回答,不晓得斑竹会不会,应该会吧。

TOP

反正我不会了。

TOP

va_arg Macro to retrieve current argument va_end Macro to reset arg_ptr va_start Macro to set arg_ptr to beginning of list of optional arguments

[此贴子已经被作者于2004-9-18 19:31:51编辑过]

多多交流.多多关照.

TOP

ElemType *base; //元素存放的起址,创建时动态分配,销毁时动态释放
int dim; //维数
int *bounds; //各维的长度基址,其个数等于dim
int *constants; //常量基址,其个数等于dim

多多交流.多多关照.

TOP

以下是引用bluewhite在2004-9-18 19:53:46的发言:
ElemType *base; //元素存放的起址,创建时动态分配,销毁时动态释放
int dim; //维数
int *bounds; //各维的长度基址,其个数等于dim
int *constants; //常量基址,其个数等于dim

个数等于dim是什么意思啊?而且你解释的va_start等都是英文,我不太懂,麻烦再解释一下好吗?谢谢。[em04]

TOP

数组的起始位置称为:基地址或基址

在计算数组元素的存储位置的时候用到的计算公式称为映象函数.

映象函数常量基址: 在计算公式中,一时确定了数组的维数,就可以确定其线性函数的常数C的值. 就可以在创建数组时一次性计算出所有的C值来,也就是常数的值,以后直接使用其值就可以了.但需要在描述数组的结构中用于保存C的空间.

这里的*CONSTANTS 就是用于保存映象函数中的常量的数组的基址,也就是第一个常量放在什么地方,这样把一系列的常量都存放起来.而这里的一系列常量的个数为DIM,也就是有几个维数就有几个常量.

这样的解释清楚了没?

[em05]

[此贴子已经被作者于2004-9-22 10:23:51编辑过]

[br][br]-----------------------------------------[br]奖励用户:原因:奖励 用户操作:金钱50,经验5,魅力10 操作者:bluewhite
多多交流.多多关照.

TOP

[转帖]这是我同学发来的资料

(1) 可变参数的头文件stdarg.h 该文件声明了一个类型va_list,定义了四个宏va_start, va_arg, va_end, va_copy 若需要访问变参,则被调用函数应声明一个具有va_list类型的对象apap可作为参数传给另一个函数;如果该函数以实参ap调用宏va_arg(ap, int),主调函数中ap的值是不确定的,则应

E va_arg type va_arg( va_list ap, type); 描述:每调用一次va_arg会修改ap,使得依次返回连续的参数值;参数type应是变参所对应的类型名。 返回:在va_start之后第一次调用va_arg,将返回在parmN后指定的参数值;以后相继返回剩余参数值。

E va_copy void va_copy( va_list dest, va_list src); 描述:将src复制给dest 返回:无返回值。

E va_end void va_end( va_list ap); 描述:该宏将修改ap使之不再可用。它应有相应的va_start,且在返回前必须调用该宏使之得以正常返回。 返回:无返回值。

E va_start void va_start( va_list ap, parmN); 描述:在访问未命名参数之前必须调用该宏,它用来初始化ap以供va_argva_end使用。ParmN是函数定义中可变参数列表的最右端的参数标识符(在省略号之前),表示后面不定参数的个数。 返回:无返回值。

多多交流.多多关照.

TOP

多谢。

TOP

 14 12
发新话题