首页 > 试题广场 >

QueueIsEmpty( )函数以一个指向队列的指针为参数

[问答题]
QueueIsEmpty( )函数以一个指向队列的指针为参数,但它本可以编写成接受一个queue结构作为参数。两种方式的优缺点各是什么?
推荐
直接传递变量的好处:这些函数查看一个列表或队列,但是不能改变它们。直接传递一个列表或队列变量意味着函数对原始值的拷贝进行工作,这可以保证函数不改变原始数据。当直接传递变量时,不需要记住使用地址运算符或指针。
直接传递变量的缺点:程序不得不分配用于存放变量的足够的空间,然后对原始数据的信息进行拷贝。如果变量是一个大型结构,使用这种方***花费大量的时间和空间。
传递变量地址的好处:传递一个地址,可以更快地访问原始数据;如果变量是一个大型结构,这比直接传递变量需要更少的内存。
传递变量地址的缺点:必须记得使用地址运算符或指针。在K&R C下,函数可能会不小心改变原始数据,但是使用ANSI C的const限定词可以克服这个问题。
发表于 2018-03-26 21:21:32 回复(0)
用指针做参数优点在于省去了拷贝时的开销 效率高 缺点在于不容易理解
发表于 2018-04-12 08:13:44 回复(0)