>> SPEAKER: Hãy viết một chương trình nhắc nhở người dùng cho hai chuỗi và
sau đó báo cáo cho dù những chuỗi đều giống nhau hoặc không giống nhau.
Tôi đã bắt đầu chúng tôi ra khỏi đây bằng gọi printf hai lần và kêu gọi
GetString hai lần, lưu trữ trở lại giá trị trong s và t tương ứng.
>> Bây giờ, bản năng của tôi để so sánh hai dây sẽ được sử dụng quen thuộc
điều hành bình đẳng -
nếu s bằng bằng t.
Sau đó tôi sẽ đi trước và in ra "Bạn gõ điều tương tự!
Khác, nếu đó là không đúng sự thật, tôi chỉ đơn giản là sẽ gõ printf ("Bạn gõ
những thứ khác nhau!
>> Khá đơn giản -
Tôi chỉ đơn giản là so sánh chống lại t, và nếu họ bình đẳng,
in ra càng nhiều.
Hãy biên dịch và chạy chương trình này.
Hãy so sánh 0. / So sánh 0, nói điều gì đó, xin chào,
nói điều gì đó, xin chào.
>> Thật không may, chương trình cho rằng tôi đã gõ những thứ khác nhau, mặc dù tôi
đánh máy rõ ràng "hello" các cùng một cách cả hai lần.
Bây giờ, tại sao có thể được?
>> Vâng, nó quay ra rằng tất cả điều này thời gian, dây đã được nhiều hơn một chút
phức tạp hơn một dãy ký tự bên dưới mui xe.
Trong thực tế, một chuỗi là một con trỏ hoặc một địa chỉ, đặc biệt là địa chỉ
của nhân vật đầu tiên trong đó chuỗi các ký tự.
>> Và do đó, khi chúng ta so sánh chống lại t với dấu bằng bằng, chúng tôi
thực sự yêu cầu, là địa chỉ này bằng bằng địa chỉ này?
Và điều đó sẽ không phải là trường hợp nếu người dùng đã gõ trong hai khác nhau
dây và chúng tôi đã được gọi là GetString hai lần để có được chúng, bởi vì bộ nhớ
GetString sử dụng để lưu trữ các đầu tiên chuỗi có thể có mặt ở đây trong bộ nhớ RAM, nhưng
bộ nhớ sử dụng GetString để lưu trữ chuỗi thứ hai đang diễn ra
có mặt ở đây trong bộ nhớ RAM.
Và tất nhiên, sau đó, hai khối bộ nhớ có địa chỉ khác nhau cho
ký tự đầu tiên của họ.
>> Như vậy là s tương đương bằng t?
Vâng, không có.
Nếu s và t được trỏ đến khác nhau khối của bộ nhớ, vì chúng sẽ là của
gọi GetString hai lần, họ không phải là, trên thực tế, sẽ được như vậy.
Vì vậy, nó có vẻ là trường hợp đó so sánh hai chuỗi trong trực quan
cách mà chúng ta mong đợi, nhân vật nhân vật, chúng ta cần kỹ thuật khác
hoàn toàn.