C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[963] [퀴즈] 다음 두 코드의 차이점은 무엇일까요?
장성호 [nasilso] 7935 읽음    2010-03-12 01:35
다음 두 코드의 차이점은 무엇일까요?


   AnsiString str=TempStr;
   char *cP=str.c_str();

   //경우1
   str[1]='a';

   //경우2
   cP[0]='A';


...
Lyn [tohnokanna]   2010-03-12 01:40 X
하나는 대문자 하나는 소문자
.
.
.
.
.
.
.
.
.
.
.
.
.
.
는 장난이고.

경우 1 str[1]='a'

str에 새 문자열 할당. cp 의 값이 무효화될 가능성 있음.

경우2 cP[0]='A'
str의 문자열 내용 바뀜. cp 무효화되지않음
장성호 [nasilso]   2010-03-12 11:51 X
네 맞습니다.
ㅋㅋ 질문에  정답을 너무 빨리 다니..
다른 사람이 생각해 볼 여지를 ...

다음 코드를 실행하면 재미있는 결과를 볼수 있죠
void __fastcall TForm1::Button9Click(TObject *Sender)
{
   String sTmpStr="123456789";
   String str=sTmpStr;
   char *cP=str.c_str();

   str[1]='a';
   cP[0]='A';

   ShowMessage(str);          //결과 = "a23456789";
   ShowMessage(sTmpStr);      //결과 = "A23456789";

}

그럼..

이경문 [gilgil]   2010-03-12 12:51 X
오호라~
좋은 정보 감사합니다.
Lyn군을 이제 못 따라 잡겠군. ㅠㅠ
이제 하산하도록!!!

+ -

관련 글 리스트
963 [퀴즈] 다음 두 코드의 차이점은 무엇일까요? 장성호 7935 2010/03/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.