У меня простой вопрос на c ++, касающийся передачи массива в функцию foo ().Предположим, у меня есть два массива A и B:
double* A=new double[3];
и
double B[3];
Когда я передаю оба в функцию
foo(double* A; double *B)
, которая предназначена для манипулирования обоимимассивы.Однако, выполнив
foo(A,B)
, foo действует на копию A, и при выходе из foo () остаются только изменения в B.Это не тот случай, если foo определено как
foo(double* &A; double *B).
Мой вопрос: почему копия создается, хотя я передаю адрес A как double * A (как в случае B) впервый пример foo ()?