第 14 题
某 C 语言程序段如下:
for (i = 0; i <= 9; i++) {
temp = 1;
for (j = 0; j <= i; j++)
temp *= a[j];
sum += temp;
}
下列关于数组 a 的访问局部性的描述中,正确的是( )。
A. 时间局部性和空间局部性皆有 B. 无时间局部性,有空间局部性 C. 有时间局部性,无空间局部性 D. 时间局部性和空间局部性皆无
[tag_link]
正确答案:A
时间局部性 是一旦一条指令被执行,则在不久的将来它可能再次被执行。空间局部性 是一旦一个存储单元被访问,那么它附近的存储单元也很快被访问。显然,这里的循环指令本身具有时间局部性,它对数组 a 的访问具有空间局部性,故选 A。