ㅡㅡ 이것도 모르냐?
모를 수도 있지...난 이제 입문했다구
원시타입은 끽해야 최대 8바이트니까 주소복사든 값복사든 비용차가 거의 없지만 객체는 크기가 얼마일줄 알고 값복사를 하겠냐. 주소복사(참조)로 균일한 속도내고 저장공간도 아껴야지.
아니 난 저기서 왜 swap(a,b)해도 a랑 b가 안바뀌는지 알고싶어
http://blog.eairship.kr/m/135?category=442691여기중간쯤에 나옴...
Argument로 넘겨준 a,b 와 같은 값을 가진 패러미터 a,b가 따로 생겼기 때문임. 그래서 값만 복사되었다는거고 샤로 생긴 a,b는 swap메서드 끝나면 사라짐. 그래서 반영이 안됨.
매개변수가 참조값이 아니니까 - dc App
이름을 같게해도 아규먼트랑 패러미터랑 다른것임.
값으로 전달하는 건 너가 메소드에 적어놓은 int a 랑 int b 라는 변수를 만들고(지역 변수라 함수 종료시 ㅂㅂ) 너가 메소드 호출할때 쓴 변수의 값을 복사해넣고 메소드를 실행하는 거임 그래서 값으로 전달하고 변경해봤자 원본 변수의 값은 변화가 없음
참조에 의한 전달은 값 복사가 아니라 원본 변수 그대로 가져다 씀 구조체나 객체같은 데이터 덩어리가 큰 애들은 값으로 전달하면 복사하는데 비용이 너무 커서 참조로 전달함 cpp면 (const) &, c#이면 ref, out, in 붙임
ㅡㅡ 이것도 모르냐?
모를 수도 있지...난 이제 입문했다구
원시타입은 끽해야 최대 8바이트니까 주소복사든 값복사든 비용차가 거의 없지만 객체는 크기가 얼마일줄 알고 값복사를 하겠냐. 주소복사(참조)로 균일한 속도내고 저장공간도 아껴야지.
아니 난 저기서 왜 swap(a,b)해도 a랑 b가 안바뀌는지 알고싶어
http://blog.eairship.kr/m/135?category=442691
여기
중간쯤에 나옴...
Argument로 넘겨준 a,b 와 같은 값을 가진 패러미터 a,b가 따로 생겼기 때문임. 그래서 값만 복사되었다는거고 샤로 생긴 a,b는 swap메서드 끝나면 사라짐. 그래서 반영이 안됨.
매개변수가 참조값이 아니니까 - dc App
이름을 같게해도 아규먼트랑 패러미터랑 다른것임.
값으로 전달하는 건 너가 메소드에 적어놓은 int a 랑 int b 라는 변수를 만들고(지역 변수라 함수 종료시 ㅂㅂ) 너가 메소드 호출할때 쓴 변수의 값을 복사해넣고 메소드를 실행하는 거임 그래서 값으로 전달하고 변경해봤자 원본 변수의 값은 변화가 없음
참조에 의한 전달은 값 복사가 아니라 원본 변수 그대로 가져다 씀 구조체나 객체같은 데이터 덩어리가 큰 애들은 값으로 전달하면 복사하는데 비용이 너무 커서 참조로 전달함 cpp면 (const) &, c#이면 ref, out, in 붙임