>> 스피커 :의 프로그램을 작성하자 그 두 문자열과를 입력하라는 메시지가
다음보고 그 문자열 여부 같은 동일하거나하지 않습니다.
난 이미 여기에 우리를 시작했습니다 두번의 printf를 호출하고 호출
반환을 저장, 두 번있는 getString s와 t의 값에 각각.
>> 자, 내 본능은이 두 가지를 비교 문자열은 친숙한를 사용하는 것
항등 연산자 -
의이 동일한 경우 t 같습니다.
그럼 앞서 인쇄 갈거야 중 "당신은 같은 일을 입력!
그게 사실이 아니라면 다른, 단순히 해요 의 printf를 입력 할 것 ( "당신은 입력
여러 가지!
>> 매우 간단합니다 -
나는 단순히 반대의 비교 해요 t, 그들은 동일한 경우에,
많은 중 인쇄.
이제이 프로그램을 컴파일하고 실행하자.
0을 비교합니다. / 비교 0,, 안녕하세요, 뭔가 말
안녕하세요, 뭔가 말.
>> 불행하게도,이 프로그램은 내가 생각했습니다 , 다른 일을 입력 비록 I
명확하게 "안녕하세요"입력 같은 방법으로 두 번.
자, 그 이유는 될 수 있을까요?
>> 글쎄요, 그것은 밝혀 그 모든이의 시간, 문자열은 조금 더 있었다
문자 시퀀스보다 복잡 후드 아래에.
현실에서, 문자열은 포인터 나입니다 주소, 즉 어드레스
그 첫 번째 문자의 일련의 문자.
>> 그래서 우리는 t에 대해의를 비교할 때 같은 등호, 우린
실제로 요구,이 주소 이 주소에 해당 동일?
그리고 그런 경우가 될 것 아니라면 사용자는 서로 다른 두 가지에 입력했다
문자열과 우리를 두 번하는 GetString을 호출 한 을 얻으려면 때문에 메모리
해당하는 GetString는 첫 번째를 저장하는 데 사용 문자열 RAM 여기에 수도 있지만
하는 GetString을 저장하는 데 사용하는 메모리 두 번째 문자열은 것입니다
여기 RAM에 저장할 수 있습니다.
물론, 다음, 두 덩어리 메모리는 서로 다른 주소를 가지고
자신의 첫 번째 문자.
>> 그래서 동일의 t는 동일하다?
음, 아니.
s와 t는 다른 가리키는 경우 그들은으로 될 것이라고 메모리의 덩어리,
두 번하는 GetString을 호출, 그들은 아니에요 사실, 동일한 될.
따라서이 사건 것 같습니다에 그 직관적 인 두 개의 문자열을 비교
우리가 기대하는 방법에 대한 자 자, 우리는 또 다른 기술을 필요로
모두.