2016-03-01 4 views

ответ

0
void swap(int *a, int *b) 

Вы ожидаете переменную передать указателем (значение указателя типа в целое)


void swap2(int &a, int &b) 

вы ожидаете переменную для передачи по ссылке (которая является адрес целочисленной переменной)


Однако два предыдущих утверждения являются технически одинаковыми.

1) Первый называется так:

int a,b; 
swap(&x,&y); 

другой:

int a,b; 
swap2(x,y); 

2) Вы можете передать NULL или nullptr к первому. Однако вы не можете сделать второй.

Насколько я помню, в руководстве по стилю google C++ они предпочитают первый, так как очевидно, что параметр может быть изменен.

Смежные вопросы