디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

자바하고 C++ 문자열 처리 차이점.

땡칠도사갤로그로 이동합니다. 2013.02.09 09:32:26
조회 124 추천 0 댓글 0


만약에

void f(string s) {
    s += '1';
}
이렇게 정의되있을 때, 이거를 
string str="abc";
f(str);
이렇게 호출하면 다음과 같은 일이 벌어짐

===== C++ =====
1) 스택상에 메모리 할당 
2) str을 새로 할당한 영역에 복사 (이게 f 내부의 s임)
3) 함수 호출 
3-1) s.append('1')
3-1-1) s를 변경시킴
3-2) s 소멸 
4) 복귀
====> str은 변하지 않는다.

===== 자바 ===== 
1) 레퍼런스를 복사
2) 호출 
2-1) s.append('1')
2-1-1) 컴파일러는 이 구문을 내부적으로 s = new StringBuffer().append(s).append('1').toString(); 로 번역해서 컴파일함
2-1-2) s는 레퍼런스 타입이므로, 이 구문 후에 s는 새로운 string 객체를 가리킴. 원래의 str에는 영향이 없다.
3) 복귀
====> str은 변하지 않는다.


여기서 봐야할 것은 
1) call by value, call by reference
2) string 클래스의 mutability

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
346164 안드로이드 동일 기능 액티비티 여러개 생성 하는 법좀요 [3] 앤드뤄이드(222.116) 13.02.17 79 0
346163 실제로 데브잡 가면 경력 10년넘어도 2400 많던데요. [2] ㅇㅁ(211.236) 13.02.17 513 0
346152 Fuck Kyle(220.244) 13.02.17 40 0
346151 c언어에서 배열은 아스키코드로 저장되나여? [2] asdf(76.94) 13.02.17 123 0
346150 새학기 맞이 뉴비 컴공생들을 위한 교양 칼럼 추천 [5] E.T.Complex갤로그로 이동합니다. 13.02.17 247 0
346149 자라 [2] 루비•‿•갤로그로 이동합니다. 13.02.17 78 0
346148 udp통신 ㅅㅂ 고고고(110.47) 13.02.17 96 0
346147 채용홈페이지에서 12년차가 희망연봉이 2600이라고 써놨던데. [6] ㅇㅁ(211.236) 13.02.17 302 0
346145 mysql 에서 필드명이랑 컬럼명이랑 같은 의미임? [1] ㄱㅁ(175.215) 13.02.17 71 0
346144 c언어 간단한 문제 질문좀요 ㅠㅠ [4] ㅂㅂㅂ(211.189) 13.02.17 112 0
346143 게임 제작할떄!!! [6] -_-(211.196) 13.02.17 191 0
346142 위에서 보면 심각한 사진, 화목한 가족 연출에 ‘애 잡는다’ 반전 [1] 에어로홍갤로그로 이동합니다. 13.02.17 310 0
346141 배운게 좆도 없어서 SI 일하지만 SI는 좆같음 ㅋㅋㅋ [3] ㅁㅁ(175.194) 13.02.16 255 0
346140 JAVA 쪽만 개발하다가 스크립트 하나도 몰라서 [5] ㄴㅇㄹㄴㅇㄹ(125.178) 13.02.16 159 0
346139 visual studio 어떻게 지우나여 [2] 서서(221.160) 13.02.16 167 0
346138 컴공가는데 걱정이다 [20] 블럭갤로그로 이동합니다. 13.02.16 358 0
346137 전산직 공무원 10년준비하면 될까.. [3] 하하(1.231) 13.02.16 364 0
346135 모바일 웹앱에서 로그인처리 질문이요 [4] 햄버거(124.49) 13.02.16 206 0
346134 형들 어셈 질문좀요 ㅋㅋㅋ [15] ㅇㅇ(112.148) 13.02.16 123 0
346133 파이썬으로 C대체 가능? [4] 시시(221.160) 13.02.16 189 0
346131 해커놈들은 지들끼리 어떻게 음지에서 만남? [3] 초궁금(175.115) 13.02.16 251 0
346130 함수를 만들때 함수를 선언한다고 해야되나 함수를 정의한다고해야함니까? [8] ㅎㅁㄷ(175.215) 13.02.16 115 0
346129 왤케 언어에 집착들 하냐 [3] 품궈니갤로그로 이동합니다. 13.02.16 148 0
346128 프로그래밍은 [상품 vs 작품]을 만드는 작업이다 [6] (203.237) 13.02.16 188 0
346127 난 개발자가 되고싶은데 둘다 입사가가능한데 뭘선택해야될까 [3] ㅁㅁ(118.36) 13.02.16 243 0
346126 형들 궁굼한거있어 [2] hoho(211.52) 13.02.16 83 0
346124 게임가드 관련 프로젝트 [2] 프로젝트(221.163) 13.02.16 109 0
346123 10년후엔 자바스크립트만 쓸듯.. [3] 하하(1.231) 13.02.16 179 0
346122 간단한 c언어 문제 질문좀요 [6] ㅇㅅㅇ(211.189) 13.02.16 135 0
346121 요즘은 웹이 짱짱인가요?? [1] ㅇㅇ(220.125) 13.02.16 95 0
346120 자바랑 C언어는 왜 배우는지 모르겠다. [9] 빕뱟뱟갤로그로 이동합니다. 13.02.16 394 0
346119 visual c++ express edition 2010 어디서 다운? [3] ㅇㅇ(220.125) 13.02.16 210 1
346118 게임 프밍하는 형들 길 좀 물읍시다. [4] ㅇㅅㅇ(211.61) 13.02.16 181 0
346116 openGL 공부하는놈 있냐? [3] korsup갤로그로 이동합니다. 13.02.16 125 0
346115 베스트 보니까 프통령논란이 거세네요;;; 黑猫갤로그로 이동합니다. 13.02.16 87 0
346114 00 씨발 오늘부터 웹프로그래밍 공부한다(계획표) [2] 파이썬저장소(119.67) 13.02.16 199 1
346113 형들 소멤 게임분야쪽 질문 [2] 질문(122.128) 13.02.16 181 0
346112 대학은 ■x(175.223) 13.02.16 48 0
346111 프로그래머랑 리버싱이랑 [1] ㅇㅇ(110.70) 13.02.16 147 0
346110 프갤에 윈도우 계열은.없음?? 싸자(110.70) 13.02.16 49 0
346109 형님들 api 배우는데 질문좀 할게요 [2] ssapo갤로그로 이동합니다. 13.02.16 77 0
346107 글래스피시3는 왜 JRE가 아닌 JDK를 요구하냐 ㅁㄴㅇ(59.25) 13.02.16 44 0
346106 파이썬이 스크립트 언어임? [3] (122.128) 13.02.16 168 0
346105 아 감동 [3] 黑猫갤로그로 이동합니다. 13.02.16 109 0
346104 프로그램 코드 작성 좀 도와주세요. [1] 만초(222.118) 13.02.16 84 0
346103 앱개발 [4] ■x(175.202) 13.02.16 174 0
346102 앱개발자암튼 어떠냐고 [3] ■x(175.202) 13.02.16 128 0
346100 ^ 이게 거듭제곱 연산자가 아니었냐 [4] 부스타(221.160) 13.02.16 166 0
346098 웹서비스 개짱나네 [1] 빌어먹을야옹갤로그로 이동합니다. 13.02.16 85 0
346097 mfc 좀 물어볼게 [1] 라이오(39.7) 13.02.16 95 0
뉴스 ‘굿보이’ 박보검의 나홀로 분투는 그만! 다시 뭉친 ‘굿벤져스’, 오정세의 검은 돈 일격에 아드레날린 폭발! 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2