문자열 비교
-
간과할 수 있는 문자열 비교 실수개발/C·C++ 2019. 10. 1. 12:51
문자열이 담긴 변수를 비교할 때 등호(==)를 써도 될까? 안 될 것은 없다. 비교하고 싶은 것이 주소인지, 실제 값인지에 따라 쓰임이 다를 뿐이다. 자바에서도 마찬가지인데, C++에서 문자열을 비교할 때 등호를 사용하게 되면 주소를 비교한다. 선언과 동시에 리터럴로 초기화한 문자열이라면 주소가 같기 때문에 등호로 검사하면 당연히 같다는 결과가 나온다. 디버깅으로 주소를 비교해보면 a, b는 주소가 같다. 같은 리터럴로 초기화했으니까. 1 2 3 4 5 6 7 8 9 10 11 12 #include #include int main() { const char* a = "I am so sorry"; const char* b = "I am so sorry"; if (a == b) printf("같다\n"); ..