#include<stdio.h>
int q = 10;
void fun(int *p){
*p = 15;
p = &q;
printf("%d ",*p);
}
int main(){
int r = 20;
int *p = &r;
fun(p);
printf("%d", *p);
return 0;
}
Я играл с указателями. Не удалось понять результат этого. Выход поступает как 10 15. Как только p указывает на адрес q, почему при возврате к основной функции изменяется значение? Также почему он изменился на значение «15», которое было присвоено ему в функции до «10».Указатели внутри функции в C
Но оно показывает выход как 15 внутри main! Это должно быть 20, затем – rocker
Поскольку вы перебираете значение в 'p' в fun() с помощью:' * p = 15; 'Обратите внимание, что есть разница в изменении значения * указателя * и того, что это * точка до *. –
Хорошо. дурак я ! – rocker