void swap(int *a, int *b)
{
int iTemp ;
iTemp = *a;
*a = *b;
*b = iTemp;
}
void swap2(int &a, int &b)
{
int iTemp;
iTemp = a;
a = b;
b = iTemp;
}
swap2(&a, &b)
和swap(*a,*b)
之间有什么区别。虽然,最终结果是一样的。
答案 0 :(得分:0)
void swap(int *a, int *b)
您期望变量通过指针传递(类型指针的值指向int)
void swap2(int &a, int &b)
您期望变量通过引用传递(这是整数变量的地址)
但是,之前的两个陈述在技术上是相同的。
1)第一个被称为:
int a,b;
swap(&x,&y);
另一个:
int a,b;
swap2(x,y);
2)您可以将A NULL
或nullptr
传递给第一个。但是,你不能为第二个。
据我记得,在谷歌c ++风格指南中,他们更喜欢第一个,因为很明显参数可能会被更改。