포인터관련입니다.
int User1(int *,int * ,int *);
으로 임의의 함수를 정의했습니다.
정의한 함수는 정수형 포인터 3개를 변수로 받습니다.
여기서 의문이
void main()
{
int x,y,z;
User1(&x,&y,&z);
}
와 같은식으로 정의하여도 프로그램은 성립합니다.
그러나 포인터연산자는 포인터형 변수에만 성립하는게 아닌가요?
이 부분이 개념적 미비인지 혹은 제가 완벽하게 오류를 범하는건지 잘 모르겠어 질문드립니다.
main 함수는 &x, &y, &z 가 아니고? 너 그거 컴파일 된다고 생각하고 올린거임?
아 죄송합니다 작성도중에 잘못 썼네요.
수정했습니다 .
&연산자가 붙으면 x y z 의 주소를 나타내기 때문에 포인터로 취급 되는건가요?
ㅇㅇ
그러면 일부러 x y z 를 포인터형 변수로 정의할 이유는 없는건가요?
xyz의 주소값을 받아서 함수에서 쓸수있는 지역변수로 가진다고 생각하시면대요
아.. 감사합니다
포인터형 변수 안에는 다른 변수의 주소가 들어있으니까, 그 값을 직접 인자로 전달해도 됩니당 - C++
포인터는 주소값을 담는 그릇이며 그 자체도 주소를 갖고 (이걸 담는게 더블 포인터), 모든 값은 주소값을 갖고 있음. & 연산자는 주소만 뽑는 연산자고 그걸 담는게 포인터 - return 0;
*a 는 다시 값을 출력하는건가요 ?