jensoo7023   5년 전

안녕하세요, 

질문이 있어서 올립니다.!!

c++사용시,

다름이 아니라 배열을 함수 매개변수로 받을 때,  void a( int a[]) 이런식으로 받거나 

메모리를 줄이려면 void a(int &a) 이런식으로 받는 것으로 알고있는 데,

1. &가 어떤 의미인지 궁금합니다.

그리고 2차원 배열에서는 매개변수로 받을 때, void a(int a[][10]) 이런식으로 하는 것으로 알고 있는 데,

2. 저렇게 메모리를 줄이기 위해서는 매개변수로 어떻게 받아야 되는 지 궁금합니다. 

void a(int (&a)[10])으로 받으면 함수 안에서 a[3][4]를 접근했을 때, 오류가 나더라고요 


고수님들 알려주시면 감사하겠습니다.!! 


감사합니다. 

djm03178   5년 전

  1. &는 참조자입니다. 참조자에 대해 알아보세요.
  2. 배열은 따로 참조자를 써서 줄이지 않아도 됩니다. 전달되는 인자 자체가 주소값 하나이고, a도 포인터 하나만큼의 공간밖에 차지하지 않습니다.

그리고 참조자는 단순히 공간을 줄이기 위함이 아니라, 실제로 전달되는 인자와 같은 대상을 사용하는 기능입니다. 참조자로 전달된 파라미터의 값을 바꾸면 호출한 함수에서의 변수값도 바뀝니다.

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