1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Да се ​​напише програма, която подсказва на потребителя за две струни и 3 00:00:03,530 --> 00:00:07,170 след това докладва дали тези струни са еднакви или не е същото. 4 00:00:07,170 --> 00:00:10,290 Вече ни започнаха от тук призовава ФОРМАТ два пъти и вика 5 00:00:10,290 --> 00:00:14,520 GetString два пъти, съхраняване на връщането стойности в S и тона, съответно. 6 00:00:14,520 --> 00:00:17,960 >> Сега моите инстинкти да сравнят тези две струни ще бъде да се използва познатото 7 00:00:17,960 --> 00:00:19,160 оператор на половете - 8 00:00:19,160 --> 00:00:22,070 и ако е равен равнява тон. 9 00:00:22,070 --> 00:00:28,120 Тогава аз ще отида напред и печат навън "сте написали едно и също нещо! 10 00:00:28,120 --> 00:00:35,190 Иначе, ако това не е вярно, аз съм просто Ще въведете ФОРМАТ ("Вие въвели 11 00:00:35,190 --> 00:00:37,880 различни неща! 12 00:00:37,880 --> 00:00:38,850 >> Сравнително лесна - 13 00:00:38,850 --> 00:00:41,820 Аз съм просто сравняване и срещу т, а ако те са равни, 14 00:00:41,820 --> 00:00:43,250 отпечатване толкова много. 15 00:00:43,250 --> 00:00:45,450 Нека да компилирате и стартирате тази програма. 16 00:00:45,450 --> 00:00:51,950 Направете сравнение 0. / Сравни 0, кажи нещо, здравей, 17 00:00:51,950 --> 00:00:54,200 каже нещо, здравей. 18 00:00:54,200 --> 00:00:56,870 >> За съжаление, програмата мисли, че аз съм въвели различни неща, въпреки че 19 00:00:56,870 --> 00:00:59,530 ясно написали "здравей" на същия начин и двата пъти. 20 00:00:59,530 --> 00:01:00,850 Сега, защо може да е това? 21 00:01:00,850 --> 00:01:03,750 >> Е, оказва се, че всичко това време, струни са били малко повече 22 00:01:03,750 --> 00:01:06,780 комплекс от поредица от символи под предния капак. 23 00:01:06,780 --> 00:01:11,450 В действителност, един низ е указател или адрес, по-специално на адрес 24 00:01:11,450 --> 00:01:14,640 на първия знак в тази поредица от знаци. 25 00:01:14,640 --> 00:01:18,640 >> И така, когато сравняваме и срещу т с равен знака за равенство, ние сме 26 00:01:18,640 --> 00:01:23,200 всъщност иска, е този адрес равен равен на този адрес? 27 00:01:23,200 --> 00:01:26,850 И това няма да се случи, ако потребителят е въвел в две различни 28 00:01:26,850 --> 00:01:30,370 струни и сме нарича GetString два пъти да ги вземем, защото паметта 29 00:01:30,370 --> 00:01:34,480 че GetString използва за съхраняване на първо низ може да бъде тук, в RAM, но 30 00:01:34,480 --> 00:01:37,120 памет, която GetString използва за съхраняване на втория низ ще 31 00:01:37,120 --> 00:01:38,760 да бъда тук в RAM. 32 00:01:38,760 --> 00:01:42,380 И разбира се, след това, тези две парчета памет имат различни адреси за 33 00:01:42,380 --> 00:01:44,220 първите си герои. 34 00:01:44,220 --> 00:01:46,120 >> Така е и равно равно на тон? 35 00:01:46,120 --> 00:01:46,885 Ами, не. 36 00:01:46,885 --> 00:01:50,510 Ако S и т са насочени към различни парчета на паметта, тъй като те биха били от 37 00:01:50,510 --> 00:01:54,140 призовава GetString два пъти, те не са, в действителност, ще бъде една и съща. 38 00:01:54,140 --> 00:01:57,700 Така че изглежда да е така, че да сравнят две струни в интуитивното 39 00:01:57,700 --> 00:02:01,050 начин, който ние очакваме, характер за характер, имаме нужда от друга техника 40 00:02:01,050 --> 00:02:02,300 напълно. 41 00:02:02,300 --> 00:02:03,902