Мне было любопытно узнать, почему адреса того же массива, т.е. массив b в моем случае изменяется до и после того, как он был передан функции манипуляции (), как показано на выходном изображении. Пожалуйста, поделитесь своими мыслями и помогите мне разобраться в этом. Спасибо!Array показывает разные адреса до и после передачи функции по ссылке
#include <stdio.h>
void manipulation(int *pa,int *pb){
int i;
for(i=0;i<10;i++){
*(pb+i)=*(pa+i);
printf("%d\t %04x\n",*pb+i,&pb+i);
}
}
int main(){
int a[10],b[10];
int i;
int *point;
point = &b[0];
printf("Enter the array elements\n");
for(i=0;i<10;i++){
scanf("%d\n",&a[i]);
}
for(i=0;i<10;i++){
printf("%04x\n",&point+i);
}
manipulation(&a[0],&b[0]);
return 0;
}
Почему бы не написать это '* (pb + i) = * (pa + i);' this way 'pb [i] = pa [i];'? –
что вы ожидаете от '& point + i'? –
BTW 'scanf ("% d \ n ", &a[i]);' -> 'scanf ("% d ", &a[i]);' – BLUEPIXY