안녕하세요 저는 C 프로그래밍 언어의 초보자입니다. 최근에 저는 값으로 전화를하고 주소로 전화를했습니다. 호출 된 함수의 주소 변경에 의한 호출에서 호출 수신자를 반영한다는 것을 알게되었습니다. 그러나 다음 코드는 그렇게 작동하지 않습니다.주소를 전달하고 있지만 C의 값으로 호출하는 것처럼 작동합니까?
int x = 10,y = 20;
void change_by_add(int *ptr) {
ptr = &y;
printf("\n Inside change_by_add\t %d",*ptr);
// here *ptr is printing 20
}
void main(){
int *p;
p = &x;
change_by_add(p);
printf("\nInside main\t %d", *p);
// here *p is still pointing to address of x and printing 10
}
주소를 전달할 때 호출 된 함수의 변경 내용이 호출자를 반영하지 않는 이유는 무엇입니까?
다운 유권자는 ur 코멘트를 언급 해주세요. 저에게 힘든 질문입니다. (초보자로서) 잘하면 지금은 u입니다. –
코드 서식을 지정하려면 코드 단추를 사용하십시오. 당신이 물어 보았던 많은 질문들로, 당신은 정말로 이것을 지금 쯤 알아야합니다. – Gilles