C ++连字符

时间:2018-11-06 16:38:15

标签: c++ arrays function ampersand

我想知道这些函数定义是相等的,即没有区别吗?

void fun1(int **X){....}
void fun2(int **&X){....}

int main(){
.....
fun1(Array);
fun2(Array);
.....
}

还是有些改变?

1 个答案:

答案 0 :(得分:1)

定义显然是不同的,功能上的差异将极大地取决于功能的实现方式。将参数传递给 .data array: .space 10 prompt: .asciiz "Enter an integer (0 to quit) :" text: .asciiz "After sorting, the list of integers is:" .text .globl main main: la $a1, array read_numbers: # Rest of code omitted for brevity... beqz $v0, sort j read_numbers sort: la $a1, $array li $v0, 4 la $a0, text syscall loop: lw $t0, 0($a1) addiu $a1, $a1, 4 beqz $t0, done li $v0, 1 move $a0, $t0 syscall j loop 然后写入函数体内的参数将写入引用的内存位置,同时将相同参数传递给fun2并写入函数体内因为传递的参数只是在不同内存位置的副本,所以将保留原始参数不变。