C에서의 포인터와 비슷하다고 듣기는 했는데 참조에 관한 설명에 "~에 대한 참조를 포함합니다" 라던가 "참조 자체의 값을 변경할 수는 없다" 와 같이 참조 라는 단어를 명사처럼 쓰니까 뭐가 뭔지를 잘 모르겠습니다. 참조에 대해 알고 계시다면 알려주셨으면 합니다. 추가로 ref 키워드에 대해서도 알려주시면 더욱 감사할 것 같네요ㅎㅎ - dc official App
call by reference - dc Cpp
??? - dc App
구글링ㄱ - dc Cpp
구글링 해보니까 포인터에 관해서만 나옵니다. 제가 포인터에 관해서는 좀 알고 있지만 C#의 참조는 스택과 힙, 저장공간이 2개인 점과 ref라는 키워드 때문에 좀 헷갈리네요 - dc App
ref 키워드가 c에서 변수의 주소를 넘겨주는 것과 비슷하게 동작함. 기능만 놓고보면 "ref로 넘긴 매개변수는 서브루틴 내에서 변경되면 해당 서브루틴을 빠져나온 후에도 값이 유지된다." 라고 할 수 있겠지. out키워드도 찾아보면 좋음 - dc Cpp
int, char 등의 자료형을 가진 변수에 들어가는 값은 정수나 문자 등이고, 이러한 것들을 원시 타입(primitive type)이라고 함 - dc Cpp
그런데 클래스 객체를 만든다고 하면 얘네는 new Object();와 같은 식으로 생성하고, 클래스를 담는 변수에 담게됨 - dc Cpp
Human chulsoo = new Human(); 이라는 문장과, int a = 1;이라는 문장의 공통점과 차이점을 생각해보자고. - dc Cpp
new Human 하면 힙에 새로 객체를 만들어서 할당하겠지. - dc Cpp
int a = 1; 이면 스택에 값을 할당하고요? - dc App
a, chulsoo는 스택에 존재하며 new Human은 힙에 들어감. 1은 리터럴으로, 컴파일 시간에 목록을 추려서 정적 영역에... C#도 리터럴에 대한 처리가 이런가? 이건좀 헷갈리네. - dc Cpp
음. "문자열"같은 리터럴 스트링은 정적영역에 들어갈테고 숫자는 그런거없이 변수에 담고 끝일듯 - dc Cpp
...다시 찾아봐야겠다 - dc Cpp
아ㅋㅋㅋ 그러면 다시 찾아보시기 전에 Swap(ref x, ref y)에서 ref가 매개변수를 주소로 전달한다고 하면 void Swap(ref int a, ref int b)로 매개변수를 전달받는 메소드에서 ref는 어떤 역할을 하나요? - dc App
메서드 진입해서 변경사항이 메서드 빠져나와서도 적용된다고 - dc Cpp
main에서 swap 호출했을 때 매개변수로 넘긴 숫자가 호출하고나서 변경되냐 안되냐 차이임 - dc Cpp
솔직히 말해서 제대로 이해는 못 했지만 도움이 된 부분도 많네요. 귀찮아 하지 않고 성실히 답변해 주셔서 감사하고, 오늘 좋은 하루 보내시길 바랄게요. 감사드립니다. - dc App
천천히 하셈 - dc Cpp
엉! - dc App
기여워!!!!!!!
사진 말고 글도 좀.... - dc App
가양이 너무 기엽다ㅜㅜ
귀엽긴 한데 본문은 읽어 보셨나요? - dc App
야옹