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 двапати, чување на враќање вредности во s и t, соодветно. 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 Друго, ако тоа не е точно, јас сум едноставно случува да напишеш printf ("Внесовте 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 и t се укажува на различните делови од меморијата, како тие ќе бидат од 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