C에서 함수를 통해 참조로 전달할 때 함수의 매개 변수는 수정할 포인터의 주소를 사용한다는 것을 알고 있습니다. 나는 참조로 전달의 예제가 작동하지 않는 이유에 대해 궁금해. 누구든지 올바른 방향으로 나를 가리킬 수 있습니다 ....참조로 전달 참조를 통해 C
이 스왑을 출력해야하지만 스왑을 컴파일 할 때 참조가 작동하지 않는 이유는 무엇입니까?
#include <stdio.h>
void swapnum(int *i, int *j) {
int temp = i;
i = j;
j = temp;
}
int main(void) {
int a = 10;
int b = 20;
swapnum(&a, &b);
printf("A is %d and B is %d\n", a, b);
getchar();
getchar();
return 0;
}
합리적으로 현대적인 컴파일러를 사용한다면'int temp = i;'에 대한 경고를 받아야합니다.그 (것)들에게주의하십시오 ... 그들은 맞은 궤도에 당신 그러나 당신 할 수있다. – dmckee
빠른 응답 시간을 보내 주신 모든 분들께 감사드립니다! 모두가 매우 도움이되었습니다. 나는 모든 사람들이 쓴 것을 읽은 후에 문제가 무엇인지를 이해합니다. 내 컴파일러는 경고했다. 비록 포인터의 주소를 int 데이터 형식으로 저장할 수 있다고 생각했지만. 나는 이것이 틀렸다는 것을 짐작한다. –
우리는 C에서 그것들을 포인터라고 부릅니다. 그러나 다른 많은 언어에서 참조라고하는 것이 있습니다. –