1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> СПІКЕР: Давайце напішам праграму, якая запытвае ў карыстальніка двух радкоў і 3 00:00:03,530 --> 00:00:07,170 затым паведамляе, ці з'яўляецца гэтыя радкі аднолькавыя або не аднолькавыя. 4 00:00:07,170 --> 00:00:10,290 Я ўжо пачаў нас тут называючы Printf двойчы і выкліку 5 00:00:10,290 --> 00:00:14,520 GetString двойчы, захоўвання вяртанне Значэння ў с і т, адпаведна. 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 выкарыстоўвае для захоўвання першым радок можа быць тут, у памяці, але 30 00:01:34,480 --> 00:01:37,120 памяці, што GetString выкарыстоўвае для захоўвання другая радок будзе 31 00:01:37,120 --> 00:01:38,760 быць тут, у аператыўнай памяці. 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 Калі з і т паказваюць на розныя кавалкі памяці, як яны былі б на 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