问题 问答题

阅读以下关于C语言及C语言代码的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。

【说明】

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:

【C代码1】是李工为零嵌入式平台上开发一段可变参数,在X86平台上实现的一个参数个数可变函数实例。

【C代码2】是王工在编写软件时,自己编写的内存拷贝函数。

【C代码3】是赵工编写的一段数据处理的程序,其中fun()的含义为从已创建的一个单向链表中查找倒数第index个结点。他的设计思路为:首先创建两个指针ptr1,ptr2,并且都指向链表头,然后ptr1向前走index步,这样ptr1和ptr2之间就间隔index个结点,然后ptr1和ptr2同时向前步进,当ptr1到达最后一个结点是,ptr2就是倒数第index个结点。ReverseList()为赵工编写的对已有单向链表进行逆序重拍的函数。

【C代码1】

long sum(int i,....)

请问C代码2中ststic的作用是什么?const的作用是什么?王工自己编写的内存老被函数安全吗?如存在缺陷,请指出缺陷在哪里。

答案

参考答案:

(1)static的作用:是将变量修饰成静态变量。静态变量的存储地址在整个程序的运行执行期间均保留,不会被别的变量占据;

(2)const的作用:是用于冻结一个变量,使其在程序中不能被进一步改变;

(3)不安全,有缺陷;

(4)应对形参的有效性进行检查,应判形参dest、src指针是否为空,形参n是否大于0 ,还应保证dest所指向的内存空间不越界。

解析:

单项选择题 A2型题
多项选择题