문자열 비교에 관한 질문입니다.
글쓴이: assa / 작성시간: 월, 2005/03/21 - 12:31오후
문자열 비교에 관한 질문을 올립니다.
예를 들어
char *c= "aaa"; char *d= "bbb"; c= d; d= "bbb"; if(c == d) cout << "t" << endl; else cout << "f" << endl; cout << c << endl; cout << d << endl;
이렇게 하면 t 가 출력이 되는데요..
만약에 char *d를 동적 할당하면 f가 출력됩니다.
왜 그런지 이해가 잘 안되는데요...
설명을 부탁드립니다.
Forums:
위의 코드는 문자열의 내용을 비교하는 것이 아니고 포인터가 가리키는 주소
위의 코드는 문자열의 내용을 비교하는 것이 아니고 포인터가 가리키는 주소를 비교하는
것입니다. 그리고 컴파일러의 최적화에 따라 "t"가 출력될 수도 있고 "f"가 출력될
수도 있습니다. (2번째 줄의 "bbb"와 4번째 줄의 "bbb"가 같은 주소일 수도 있고
다른 주소일 수도 있다는 뜻임.)
문자열의 내용을 비교하려면 strcmp를 쓰세요. C++을 쓰신다면 std::string을
쓰는 것이 더 좋겠고요.
댓글 달기