seyhu2000   7년 전

안녕하세요. 31행 / 38행에 표준입력을 받을때 배열은 & 연산자를 사용하지 않는걸로 알고 있는데

검색해서 답을 찾아보니 & 연산자를 넣어야 답이 나오더라구요.

C 문법과 다른거 같은데

혹시 제가 잘못 알고 있나요?

gallopsys   7년 전

2차원 배열에서 배열의 한 원소에 대한 주소값을 참조하고자 할 때는 & 연산자(Address-of Operator)를 사용하게 됩니다.

현재 사용하고 계신 방법은 배열의 각 원소에 접근하고 있는 것이므로, &를 사용하지 않고 scanf("%lld", a[i][0]); 라고 하시면 그 배열의 원소는 제대로 초기화가 안 된 상태이고, 입력 또한 제대로 들어가지 않기 때문에 문제가 발생할 수 있습니다.

& 연산자를 사용하지 않고 입력을 받는 방법은 scanf("%lld", &a[i][0]); 대신에 scanf("%lld", a[i]);라고 하시면 되고, scanf("%lld", &a[i][1]);은 scanf("%lld", a[i] + 1);이라고 하시면 됩니다.

이에 대해 자세히 알고 싶으시다면, 포인터 연산에 대한 내용을 참고하시길 바랍니다.

댓글을 작성하려면 로그인해야 합니다.