인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

알타리's profile image
알타리

asked

10-Week C++ Coding Test | Algorithm Coding Test

C++ Algorithm Textbook

매개변수 값의 수정

Written on

·

382

0

p.108 Array의 요소 수정하기

  1. 함수에 매개변수로 전달할 때, 배열은 왜 int &a[] 형태가 아닌 int *a 로 전달해야하나요?

  2. 배열을 매개변수로 전달할때,

    int a[] | int a[size] | int *a

    이렇게 세 가지 형태로 전달해서 수정이 가능하다면, 결국 배열은 참조로 전달 해야지만 값을 변경할 수 있는 다른 타입들과는 다르게 매개변수로 주어졌을 때 항상 값이 변할 수 밖에 없는건가요?

c++코딩-테스트C++코테 준비 같이 해요!

Answer 1

1

kundol님의 프로필 이미지
kundol
Instructor

안녕하세요. ㅎㅎ

1.음.. int & a[]은 왜 안되냐는 말씀이시죠? 사실 됩니다.

다음 코드처럼 하시면 됩니다. 하지만 이렇게는 잘 안 쓰입니다.

#include <bits/stdc++.h>
using namespace std; 
int a[] = {1, 2, 3};
int go(int (&a)[3]){
	a[2] = 1;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	go(a); 
	cout << a[2] << '\n'; // 1
	return 0;
}

2.네 C++에서 배열은 call by value가 불가능합니다.

감사합니다.

알타리's profile image
알타리

asked

Ask a question