这个类似C的伪代码会返回以下代码。在此代码中,假设incrementAll
的参数使用call-by-value-result。谢谢你的帮助。
void incrementAll (int val1, int val2, int val3) {
val1 += 1;
val2 += 1;
val3 += 1;
}
void main() {
int save = 1;
int list[] = {1, 2, 3, 4, 5};
incrementAll(save, list[save], list[list[save]]);
for (int i=0; i < listLength; i++) {
printf("%d ", list[i]);
}
printf("\n");
}
答案 0 :(得分:0)
使用Call be value结果,输出将为13445,如在按值调用结果时,首先将数组值复制到局部变量,在函数调用结束时,将更改后的值复制回原始值参数。但它不是C的特色。