1 00:00:00,000 --> 00:00:02,420 >> [Гуляе музыка] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 Слухаць: Добра. 4 00:00:05,980 --> 00:00:08,540 Такім чынам, давайце пагаворым пра іншае што гэта свайго роду унікальным для C, 5 00:00:08,540 --> 00:00:10,010 які тыпы дадзеных і зменныя. 6 00:00:10,010 --> 00:00:12,340 Калі я кажу, унікальны для З, я сапраўды азначаць толькі ў кантэксце, 7 00:00:12,340 --> 00:00:14,470 калі вы былі праграмістам на працягу сапраўды доўгага часу, 8 00:00:14,470 --> 00:00:16,270 вы, верагодна, не працаваў з тыпамі дадзеных 9 00:00:16,270 --> 00:00:18,470 калі вы выкарыстоўвалі сучасны мовы праграмавання. 10 00:00:18,470 --> 00:00:20,432 Сучасныя мовы, такія як PHP і JavaScript, 11 00:00:20,432 --> 00:00:22,640 які мы таксама будзем бачыць трохі у далейшым у ходзе, 12 00:00:22,640 --> 00:00:25,550 Вы на самой справе не трэба паказваць тып дадзеных зменнай 13 00:00:25,550 --> 00:00:26,270 калі вы выкарыстоўваеце яго. 14 00:00:26,270 --> 00:00:28,067 >> Вы проста аб'явіць яго і пачаць выкарыстоўваць яго. 15 00:00:28,067 --> 00:00:29,900 Калі гэта цэлае, яго ведаю, што гэта цэлы лік. 16 00:00:29,900 --> 00:00:31,960 Калі гэта знак, гэта ведае, што гэта персанаж. 17 00:00:31,960 --> 00:00:35,320 Калі гэтае слова, ён ведае, гэта радок, так званыя. 18 00:00:35,320 --> 00:00:37,300 >> Аднак у C, які з'яўляецца стары мова, мы павінны 19 00:00:37,300 --> 00:00:39,420 пазначыць дадзеныя тып кожнай зменнай 20 00:00:39,420 --> 00:00:42,990 што мы ствараем у першы раз што мы выкарыстоўваем гэтую зменную. 21 00:00:42,990 --> 00:00:45,030 Так C пастаўляецца з некаторымі ўбудаваных тыпаў дадзеных. 22 00:00:45,030 --> 00:00:46,972 І давайце знаёміцца з некаторымі з іх. 23 00:00:46,972 --> 00:00:50,180 А потым пасля гэтага мы таксама пагаворым трохі аб некаторых з тыпаў дадзеных 24 00:00:50,180 --> 00:00:54,450 што мы напісалі для вас, так што вы можаце выкарыстоўваць іх у CS50. 25 00:00:54,450 --> 00:00:56,130 >> Па-першае, Int. 26 00:00:56,130 --> 00:00:59,110 Тып INT дадзеныя выкарыстоўваюцца для зменных што будзе захоўваць цэлыя значэння. 27 00:00:59,110 --> 00:01:03,210 Так 1, 2, 3, адмоўны 1, 2, 3, і так далей. 28 00:01:03,210 --> 00:01:05,960 Цэлыя, што тое, што вы Варта мець на ўвазе, для віктарыны, 29 00:01:05,960 --> 00:01:09,590 заўсёды займаюць чатыры байта памяці, які складае 32 біта. 30 00:01:09,590 --> 00:01:11,620 Існуюць восем бітаў у байце. 31 00:01:11,620 --> 00:01:14,470 >> Дык гэта азначае, што ў дыяпазоне шануе, што лік можа захоўваць 32 00:01:14,470 --> 00:01:19,130 абмежаваны тым, што можа змясціцца ў 32 біта на суму інфармацыі. 33 00:01:19,130 --> 00:01:21,850 Цяпер, як высвятляецца, Гэта было вырашана даўно 34 00:01:21,850 --> 00:01:24,310 што мы рассталіся што дыяпазон 32 біт 35 00:01:24,310 --> 00:01:26,650 у адмоўных цэлых і станоўчыя цэлыя лікі, 36 00:01:26,650 --> 00:01:28,390 кожны становіцца палове дыяпазону. 37 00:01:28,390 --> 00:01:32,230 Так дыяпазоне значэнняў, якія мы ўяўляем з цэлалікавых дыяпазоне ад адмоўнага 2 38 00:01:32,230 --> 00:01:36,520 31-й ўлады 2 да 31-магутнасць мінус 1, 39 00:01:36,520 --> 00:01:38,190 прывесці вам таксама неабходна месца для 0. 40 00:01:38,190 --> 00:01:41,650 >> Так у асноўным палова з магчымых значэнняў Вы можаце прыстасаваць ў міжнар адмоўныя, 41 00:01:41,650 --> 00:01:42,610 і палова з'яўляюцца станоўчымі. 42 00:01:42,610 --> 00:01:47,270 І прыкладна тут, гэта пра адмоўны 2 млрд да 2 млрд станоўчай. 43 00:01:47,270 --> 00:01:50,207 Дайце або ўзяць пару сотняў мільёнаў. 44 00:01:50,207 --> 00:01:52,290 Так што тое, што вы можаце змясціць у цэлай зменнай. 45 00:01:52,290 --> 00:01:55,490 Цяпер у нас ёсць нешта называецца цэлы лік без знака. 46 00:01:55,490 --> 00:01:59,220 Цяпер без знака Інтс зьяўляюцца не асобны тып зменнай. 47 00:01:59,220 --> 00:02:01,590 Хутчэй за ўсё, гэта без знака тое, што называецца класіфікатар. 48 00:02:01,590 --> 00:02:04,990 Гэта змяняе дадзеныя тып цэлага нязначна. 49 00:02:04,990 --> 00:02:07,850 >> І ў гэтым выпадку, тое, што без знака азначае: а вы таксама можаце 50 00:02:07,850 --> 00:02:11,530 выкарыстоўваць непадпісаныя іншыя тыпы дадзеных, лік гэта не толькі адзін. 51 00:02:11,530 --> 00:02:15,310 Што гэта эфектыўна робіць падвойваецца станоўчы дыяпазон значэнняў 52 00:02:15,310 --> 00:02:19,350 што лік можа прымаць на выдатак больш не дазваляе 53 00:02:19,350 --> 00:02:21,140 Вам прымаць адмоўныя значэння. 54 00:02:21,140 --> 00:02:25,400 Так што, калі ў вас ёсць нумары, якія вы ведаеце атрымаеце больш чым 2 млрд, але менш 55 00:02:25,400 --> 00:02:31,280 як 4 млрд, за example-- які складае ад 2 да 32-га power-- 56 00:02:31,280 --> 00:02:33,330 Вы можаце выкарыстоўваць без знака INT калі вы 57 00:02:33,330 --> 00:02:35,050 ведаць ваша значэнне ніколі не будзе адмоўным. 58 00:02:35,050 --> 00:02:37,216 >> Вы будзеце часам ёсць выкарыстоўваецца для непадпісаным зменных 59 00:02:37,216 --> 00:02:39,460 у CS50, які з'яўляецца, чаму я згадваю яго тут. 60 00:02:39,460 --> 00:02:43,830 Але, зноў жа, дыяпазон значэнняў, якія вы можа прадстаўляць з цэлага ліку без знака 61 00:02:43,830 --> 00:02:48,240 а Т рэгулярнае цэлы лік, ад 0 да 2 да ўлады 32-га мінус 1, 62 00:02:48,240 --> 00:02:50,840 або прыкладна ад 0 да 4 млрд. 63 00:02:50,840 --> 00:02:53,730 Такім чынам, вы эфектыўна падвоілася станоўчых значэнняў, што вы можаце змясціць, 64 00:02:53,730 --> 00:02:56,270 але вы адмовіліся ўсе адмоўныя значэння. 65 00:02:56,270 --> 00:03:00,040 >> Цяпер, як у бок, без знака не толькі класіфікатар 66 00:03:00,040 --> 00:03:01,790 што для нас можа ўбачыць тыпы зменных дадзеных. 67 00:03:01,790 --> 00:03:05,779 Ёсць таксама рэчы, званыя кароткія і доўгія, і будаўніцтва. 68 00:03:05,779 --> 00:03:07,820 Будаўніцтва, мы ўбачым трохі Крыху пазней у курсе. 69 00:03:07,820 --> 00:03:10,830 Кароткія і доўгія, мы, верагодна, не будзе. 70 00:03:10,830 --> 00:03:12,830 >> Але дакладна ведаю, што ёсць іншыя адборачныя. 71 00:03:12,830 --> 00:03:14,080 Без подпісы не толькі адзін. 72 00:03:14,080 --> 00:03:16,596 Але гэта толькі адзін мы пагаворым аб прама цяпер. 73 00:03:16,596 --> 00:03:17,310 Такім чынам, усё ў парадку. 74 00:03:17,310 --> 00:03:18,393 Такім чынам, мы ўжо разгледзелі цэлых лікаў. 75 00:03:18,393 --> 00:03:19,200 Што далей? 76 00:03:19,200 --> 00:03:20,130 >> Знакаў. 77 00:03:20,130 --> 00:03:23,620 Так сімвалы выкарыстоўваюцца для зменных што будзе захоўваць асобныя сімвалы. 78 00:03:23,620 --> 00:03:24,850 Чар кароткі для характару. 79 00:03:24,850 --> 00:03:27,870 А часам вы можаце пачуць людзі прамаўляюць яго як аўтамабіль. 80 00:03:27,870 --> 00:03:32,020 >> Так героі заўсёды займаюць адну байт памяці, які знаходзіцца ўсяго ў 8 біт. 81 00:03:32,020 --> 00:03:35,700 Такім чынам, гэта азначае, што яны могуць усталяваць толькі Значэння ў дыяпазоне ад негатыву 2 82 00:03:35,700 --> 00:03:42,430 у сёмы ступені, ці адмоўны 128, да 2 у ступені мінус студзеня 7, або 127. 83 00:03:42,430 --> 00:03:45,710 >> Дзякуючы ASCII, было даўно вырашыў спосаб 84 00:03:45,710 --> 00:03:50,805 каб супаставіць гэтыя станоўчыя лікі ад 0 да 127 розных сімвалаў 85 00:03:50,805 --> 00:03:52,182 што ўсе існуе на нашай клавіятуры. 86 00:03:52,182 --> 00:03:54,640 Так як мы ўбачым пазней, у курс, і вы, верагодна, 87 00:03:54,640 --> 00:03:57,700 прыйшоў, каб запомніць на некаторыя кропка, капітал А для example-- 88 00:03:57,700 --> 00:04:00,732 характар ​​капітал A-- адлюстроўвае на нумар 65. 89 00:04:00,732 --> 00:04:02,940 І прычына ў тым, таму што гэта тое, што гэта 90 00:04:02,940 --> 00:04:05,490 быў прызначаны ў адпаведнасці са стандартам ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Малыя А 97. 92 00:04:07,850 --> 00:04:11,900 Характар ​​0, калі вам на самай справе увядзіце характар, не 93 00:04:11,900 --> 00:04:13,532 які ўяўляе лік нуль, 48. 94 00:04:13,532 --> 00:04:15,240 Вы даведаецеся пару з іх, як вы ідзяце. 95 00:04:15,240 --> 00:04:17,990 І вы, вядома, трэба прыйсці да іх крыху пазьней у CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Наступным буйным тып дадзеных у колькасці з якая плавае коскі. 98 00:04:23,390 --> 00:04:26,100 Так лік з якая плавае кропкай таксама вядомы як сапраўдных лікаў. 99 00:04:26,100 --> 00:04:28,850 Яны ў асноўным нумары, якія ёсць дзесятковую кропку ў іх. 100 00:04:28,850 --> 00:04:33,360 З плавае коскі як цэлыя лікі таксама 101 00:04:33,360 --> 00:04:36,090 змяшчаюцца на працягу 4 байт памяці. 102 00:04:36,090 --> 00:04:37,580 Зараз няма схема тут. 103 00:04:37,580 --> 00:04:40,890 Там няма нумар радка, таму што апісваючы круг паплаўка 104 00:04:40,890 --> 00:04:44,550 Не зусім ясна, ці інтуітыўна. 105 00:04:44,550 --> 00:04:47,350 >> Дастаткова сказаць, вам ёсць 32 біта для працы з. 106 00:04:47,350 --> 00:04:49,730 І калі ў вас ёсць нумар як пі, які мае 107 00:04:49,730 --> 00:04:55,510 цэлая частка 3 і плавае Кропка частка, або дробавая частка 0,14159, 108 00:04:55,510 --> 00:04:58,735 і гэтак далей, вы павінны быць магчымасць прадстаўляць ўсе it-- 109 00:04:58,735 --> 00:05:02,420 цэлая частка і дробавая частка. 110 00:05:02,420 --> 00:05:04,550 >> Так што вы думаеце, што можа азначаць? 111 00:05:04,550 --> 00:05:08,180 Адна рэч, што калі дзесятковай частка становіцца больш і больш, 112 00:05:08,180 --> 00:05:10,660 калі ў мяне ёсць вельмі вялікі Цэлая частка, я не мог 113 00:05:10,660 --> 00:05:13,090 зможа быць настолькі дакладнай, з дзесятковай часткі. 114 00:05:13,090 --> 00:05:15,280 І гэта на самай справе абмежаванне паплаўка. 115 00:05:15,280 --> 00:05:17,229 >> Паплаўкі ёсць праблемы дакладнасці. 116 00:05:17,229 --> 00:05:19,270 У нас ёсць толькі 32 біта на працаваць, таму мы можам толькі 117 00:05:19,270 --> 00:05:22,510 быць настолькі дакладныя, з нашай дзесятковай часткі. 118 00:05:22,510 --> 00:05:27,300 Мы не можам абавязкова дзесятковай частка дакладным на 100 або 200 лічбаў, 119 00:05:27,300 --> 00:05:29,710 таму што ў нас ёсць толькі 32 біта для працы з. 120 00:05:29,710 --> 00:05:31,590 Так што гэта абмежаванне паплаўка. 121 00:05:31,590 --> 00:05:33,590 >> Цяпер, на шчасце, ёсць іншы тып дадзеных называецца 122 00:05:33,590 --> 00:05:36,530 двойчы, што некалькі займаецца гэтай праблемай. 123 00:05:36,530 --> 00:05:39,980 Парны, як паплаўкі, якія таксама выкарыстоўваюцца для захоўваць рэчавыя колькасці або з якая плавае кропкай 124 00:05:39,980 --> 00:05:40,840 значэння. 125 00:05:40,840 --> 00:05:44,340 Розніца ў тым, што Дублі двайны дакладнасці. 126 00:05:44,340 --> 00:05:48,177 Яны могуць адпавядаць 64 біт Дадзеныя, ці восем байт. 127 00:05:48,177 --> 00:05:49,010 Што гэта азначае? 128 00:05:49,010 --> 00:05:51,801 Ну, гэта азначае, што мы можам быць нашмат больш дакладная з коскі. 129 00:05:51,801 --> 00:05:54,830 Замест таго, пі да сямі месцы, можа быць, з паплаўком, 130 00:05:54,830 --> 00:05:56,710 мы можам, магчыма, ёсць яго да 30 месцаў. 131 00:05:56,710 --> 00:05:59,824 Калі гэта важна, вы, магчыма, захочаце выкарыстоўваць двайны замест паплаўка. 132 00:05:59,824 --> 00:06:01,740 У прынцыпе, калі вы працуе на што-небудзь дзе 133 00:06:01,740 --> 00:06:06,540 якія маюць вельмі доўга дзесятковага і многае дакладнасці важна, 134 00:06:06,540 --> 00:06:08,630 Вы, верагодна, хочаце, каб выкарыстоўваць двайны overfloat. 135 00:06:08,630 --> 00:06:11,250 Цяпер большую частку працы ў CS50, паплавок павінен быць дастатковым. 136 00:06:11,250 --> 00:06:15,340 Але ведаю, што існуюць двайнікі ў выглядзе спосаб некалькі справу з дакладнасцю 137 00:06:15,340 --> 00:06:20,980 Праблема, даючы вам дадатковы 32 Біты для працы з для лікаў. 138 00:06:20,980 --> 00:06:23,650 >> Зараз гэта не тып дадзеных. 139 00:06:23,650 --> 00:06:24,390 Гэта тып. 140 00:06:24,390 --> 00:06:25,340 І гэта называецца несапраўднымі. 141 00:06:25,340 --> 00:06:27,506 І я кажу пра гэта тут, таму што мы ўжо, напэўна 142 00:06:27,506 --> 00:06:29,520 бачыў яго некалькі разоў ужо ў CS50. 143 00:06:29,520 --> 00:06:32,020 І вы можаце быць здзіўлены, тое, што гэта ўсё аб. 144 00:06:32,020 --> 00:06:33,390 >> Так пустата тып. 145 00:06:33,390 --> 00:06:34,097 Гэта сапраўды існуе. 146 00:06:34,097 --> 00:06:35,180 Але гэта не з'яўляецца тыпам дадзеных. 147 00:06:35,180 --> 00:06:39,350 >> Мы не можам стварыць зменную тыпу анулявання і прызначыць ёй значэнне. 148 00:06:39,350 --> 00:06:42,519 Але функцыі, напрыклад, можа мець тып якое вяртаецца несапраўдным. 149 00:06:42,519 --> 00:06:45,060 У прынцыпе, калі вы бачыце функцыю які мае тып якое вяртаецца несапраўдным, 150 00:06:45,060 --> 00:06:46,970 гэта азначае, што не вяртае значэнне. 151 00:06:46,970 --> 00:06:49,440 Ці можаце вы агульны Функцыя, якую мы выкарыстоўвалі да гэтага часу 152 00:06:49,440 --> 00:06:52,780 у CS50, якая не вяртае значэнне? 153 00:06:52,780 --> 00:06:54,700 >> Printf адзін. 154 00:06:54,700 --> 00:06:56,820 Printf на самай справе не нічога вяртаць да вас. 155 00:06:56,820 --> 00:06:59,850 Ён друкуе нешта на экран, і гэта ў асноўным 156 00:06:59,850 --> 00:07:01,650 пабочны эфект, што робіць Printf. 157 00:07:01,650 --> 00:07:03,620 Але гэта не дае вам значэнне назад. 158 00:07:03,620 --> 00:07:08,419 Вы не захапіць вынік і крама гэта ў нейкай зменнай, каб выкарыстоўваць яго ў далейшым. 159 00:07:08,419 --> 00:07:10,710 Гэта проста нешта друкуе экран, і вы зрабілі. 160 00:07:10,710 --> 00:07:14,360 >> Таму мы кажам, што Printf з'яўляецца функцыяй несапраўднымі. 161 00:07:14,360 --> 00:07:16,450 Гэта нічога не вяртае. 162 00:07:16,450 --> 00:07:18,580 >> Спіс перыметры Функцыя таксама можа быць несапраўдным. 163 00:07:18,580 --> 00:07:21,410 І вы таксама бачылі, што зусім трохі ў CS50 таксама. 164 00:07:21,410 --> 00:07:22,300 Int асноўны несапраўднымі. 165 00:07:22,300 --> 00:07:23,260 Што тэлефануе звон ці што? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 У асноўным тое, што гэта азначае, што Асноўны не прымае ніякіх параметраў. 168 00:07:27,220 --> 00:07:29,520 Там няма аргумент, што атрымаць прайшло ў галоўным. 169 00:07:29,520 --> 00:07:32,780 Цяпер у далейшым мы ўбачым, што ёсць спосаб перадачы аргументаў у асноўным, 170 00:07:32,780 --> 00:07:36,189 але да гэтага часу, што мы бачыў гэта INT асноўны несапраўднымі. 171 00:07:36,189 --> 00:07:37,730 Галоўная проста не прымаць якія-небудзь аргументы. 172 00:07:37,730 --> 00:07:40,236 І так мы паказваем, што, кажучы несапраўднымі. 173 00:07:40,236 --> 00:07:42,110 Мы проста быўшы вельмі відавочнае пра тое, 174 00:07:42,110 --> 00:07:44,430 што ён не прымае ніякіх аргументаў. 175 00:07:44,430 --> 00:07:47,160 >> Так што цяпер, дастаткова, каб яго сказаць, што ў асноўным пустэчу 176 00:07:47,160 --> 00:07:50,789 павінны проста служыць у якасці запаўняльніка для вас, як думаць аб нішто. 177 00:07:50,789 --> 00:07:52,080 Гэта нічога не робіць. 178 00:07:52,080 --> 00:07:53,550 Там няма вяртаецца значэння тут. 179 00:07:53,550 --> 00:07:54,770 Там няма ніякіх параметраў тут. 180 00:07:54,770 --> 00:07:55,709 Гэта пустата. 181 00:07:55,709 --> 00:07:57,250 Гэта крыху больш складана, чым гэта. 182 00:07:57,250 --> 00:08:00,640 Але гэта павінна быць дастаткова для лепшая частка курсу. 183 00:08:00,640 --> 00:08:05,010 І, спадзяюся, зараз у вас ёсць трохі трохі больш аб тым, што канцэпцыя пустата. 184 00:08:05,010 --> 00:08:08,460 >> Так што тыя пяць тыпаў вы будзеце Сустрэча, якія ўбудаваныя ў З 185 00:08:08,460 --> 00:08:10,670 Але ў CS50 у нас таксама ёсць бібліятэка. 186 00:08:10,670 --> 00:08:13,550 CS50.h, якія вы можаце ўключыць. 187 00:08:13,550 --> 00:08:15,930 І які забяспечыць вам з двума дадатковымі тыпамі 188 00:08:15,930 --> 00:08:18,280 што вы, верагодна, зможаце для выкарыстання на вашых заданняў, 189 00:08:18,280 --> 00:08:21,210 або проста працаваць, як правіла праграмавання. 190 00:08:21,210 --> 00:08:23,030 >> Першы з іх з'яўляецца BOOL. 191 00:08:23,030 --> 00:08:26,780 Такім чынам, лагічны тып, BOOL, выкарыстоўваецца для зменных 192 00:08:26,780 --> 00:08:28,114 што будзе захоўваць лагічнае значэнне. 193 00:08:28,114 --> 00:08:29,863 Калі вы калі-небудзь чуў гэты тэрмін і раней, вам 194 00:08:29,863 --> 00:08:31,960 маглі ведаць, што лагічнае значэнне Значэнне здольны толькі 195 00:08:31,960 --> 00:08:34,440 правядзенне двух розных розныя значэнні. 196 00:08:34,440 --> 00:08:35,872 Сапраўдныя і несапраўдныя. 197 00:08:35,872 --> 00:08:37,580 Цяпер гэта здаецца даволі фундаментальная, праўда? 198 00:08:37,580 --> 00:08:40,496 Гэта свайго роду сюрпрызам, што гэта не існуе ў C, як гэта убудаваны ў. 199 00:08:40,496 --> 00:08:42,640 І ў многіх сучасных мовах, вядома, лагічныя 200 00:08:42,640 --> 00:08:45,390 з'яўляюцца стандартны тып дадзеных па змаўчанні. 201 00:08:45,390 --> 00:08:47,192 Але ў C, яны на самой справе няма. 202 00:08:47,192 --> 00:08:48,400 Але мы стварылі яго для вас. 203 00:08:48,400 --> 00:08:51,910 Так што, калі вы калі-небудзь трэба стварыць пераменная, тып BOOL, 204 00:08:51,910 --> 00:08:55,230 толькі пераканайцеся, што #include CS50.h у пачатку вашай праграмы, 205 00:08:55,230 --> 00:08:57,800 і вы зможаце стварыць зменныя тыпу BOOL. 206 00:08:57,800 --> 00:09:02,095 >> Калі вы забыліся #include CS50.h, і вы пачынаеце выкарыстоўваць зменныя тыпу Boolean, 207 00:09:02,095 --> 00:09:04,970 Вы маглі б сутыкнуцца з некаторымі праблемамі калі вы компилируете праграму. 208 00:09:04,970 --> 00:09:06,490 Так што будзьце напагатове для гэтага. 209 00:09:06,490 --> 00:09:11,180 І, можа быць, вы можаце проста выправіць праблемы па фунту у тым ліку CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Іншы асноўны тып дадзеных, якія мы забяспечыць для вас у бібліятэцы CS50 211 00:09:14,590 --> 00:09:15,670 радок. 212 00:09:15,670 --> 00:09:17,130 Так што гэта радок? 213 00:09:17,130 --> 00:09:18,520 Радкі сапраўды проста словы. 214 00:09:18,520 --> 00:09:20,000 Яны калекцыі знакаў. 215 00:09:20,000 --> 00:09:20,640 Яны слоў. 216 00:09:20,640 --> 00:09:21,390 Яны прысуды. 217 00:09:21,390 --> 00:09:22,480 Яны абзацы. 218 00:09:22,480 --> 00:09:25,850 Можа быць цэлыя кнігі, нават. 219 00:09:25,850 --> 00:09:29,690 >> Вельмі кароткая, каб вельмі доўга паслядоўнасць знакаў. 220 00:09:29,690 --> 00:09:34,310 Калі вам трэба выкарыстоўваць струны, напрыклад, для захоўвання словы, 221 00:09:34,310 --> 00:09:37,609 толькі не забудзьцеся ўключыць CS50.h у пачатку вашай праграмы 222 00:09:37,609 --> 00:09:38,900 так што вы можаце выкарыстоўваць радковы тып. 223 00:09:38,900 --> 00:09:43,910 І тады вы можаце ствараць зменныя Тып дадзеных якога з'яўляецца радок. 224 00:09:43,910 --> 00:09:46,160 Цяпер пазней у ходзе, мы таксама ўбачым, што гэта 225 00:09:46,160 --> 00:09:47,752 не ўся гісторыя, альбо. 226 00:09:47,752 --> 00:09:49,460 Мы сутыкаемся рэчы званыя структуры, 227 00:09:49,460 --> 00:09:54,249 якія дазваляюць групаваць, што можа быць цэлы лік, а радок у адзін блок. 228 00:09:54,249 --> 00:09:56,290 І мы можам выкарыстоўваць гэта для некаторыя мэты, якія маглі б 229 00:09:56,290 --> 00:09:57,750 спатрэбіцца ў далейшым у ходзе. 230 00:09:57,750 --> 00:09:59,500 >> І мы таксама даведаемся аб пэўных тыпаў, 231 00:09:59,500 --> 00:10:01,720 якія дазваляюць стварыць Вашы ўласныя тыпы дадзеных. 232 00:10:01,720 --> 00:10:03,060 Мы не павінны хвалявацца аб тым, што ў цяперашні час. 233 00:10:03,060 --> 00:10:04,550 Але дакладна ведаю, што гэта што-то на гарызонце, 234 00:10:04,550 --> 00:10:07,633 што ёсць нашмат больш да гэтага цэлым тып рэч, чым я вам кажу толькі 235 00:10:07,633 --> 00:10:08,133 Цяпер. 236 00:10:08,133 --> 00:10:10,591 Так што цяпер мы даведаліся трохі аб асноўных дадзеных 237 00:10:10,591 --> 00:10:14,230 віды і тыпы дадзеных CS50, давайце казаць аб тым, каб працаваць з зменнымі 238 00:10:14,230 --> 00:10:18,530 і ствараць іх з дапамогай іх тыпы дадзеных у нашых праграмах. 239 00:10:18,530 --> 00:10:22,670 Калі вы хочаце стварыць зменную, усё, што вам трэба зрабіць, гэта дзве рэчы. 240 00:10:22,670 --> 00:10:24,147 >> Па-першае, вы павінны даць яму тып. 241 00:10:24,147 --> 00:10:26,230 Другое, што вы павінны зрабіць, гэта даць яму імя. 242 00:10:26,230 --> 00:10:28,740 Пасля таго як вы гэта зрабілі, і ўдарыў коскі ў канцы гэтага радка, 243 00:10:28,740 --> 00:10:29,830 Вы стварылі зменную. 244 00:10:29,830 --> 00:10:32,370 >> Дык вось два прыкладу. 245 00:10:32,370 --> 00:10:35,744 Int нумар; сімвал ліст;. 246 00:10:35,744 --> 00:10:36,660 Што я зрабіў тут? 247 00:10:36,660 --> 00:10:38,110 Я стварыў дзве зменныя. 248 00:10:38,110 --> 00:10:40,190 >> Па-першае, значэнняў зменнай імя нумар. 249 00:10:40,190 --> 00:10:44,830 І лік здольны ўтрымліваць цэлае увядзіце значэння, таму што яго тып Int. 250 00:10:44,830 --> 00:10:48,040 Ліст іншая пераменная які можа ўтрымліваць сымбалі 251 00:10:48,040 --> 00:10:50,240 бо яе тып дадзеных CHAR. 252 00:10:50,240 --> 00:10:51,772 >> Даволі проста, ці не так? 253 00:10:51,772 --> 00:10:53,480 Калі вы апынецеся ў сітуацыі, калі 254 00:10:53,480 --> 00:10:56,250 Вы павінны стварыць некалькі зменныя таго ж тыпу, 255 00:10:56,250 --> 00:10:58,740 Вы павінны толькі паказаць імя тыпу адзін раз. 256 00:10:58,740 --> 00:11:01,600 Тады проста пералічыць столькі зменных, гэтага тыпу, як вам трэба. 257 00:11:01,600 --> 00:11:04,230 >> Так што я мог, напрыклад, тут у гэтым трэцім радку кода, 258 00:11:04,230 --> 00:11:07,420 кажуць вышыні INT;, новы радок. 259 00:11:07,420 --> 00:11:08,291 Int шырыня;. 260 00:11:08,291 --> 00:11:09,290 І, што б працаваць таксама. 261 00:11:09,290 --> 00:11:12,039 Я ўсё яшчэ атрымліваю дзве зменныя называюцца вышыня і шырыня, кожны з якіх 262 00:11:12,039 --> 00:11:12,730 з'яўляецца цэлым лікам. 263 00:11:12,730 --> 00:11:16,970 Але я дазволіў, рэчы сінтаксісу C, кансалідаваць яго ў адным радку. 264 00:11:16,970 --> 00:11:20,230 Вышыня Int, шырыня; Гэта тое ж самае. 265 00:11:20,230 --> 00:11:23,900 Я стварыў дзве зменныя, адна называецца Вышыня адна называецца шырыня, абодва з якіх 266 00:11:23,900 --> 00:11:26,730 здольныя холдынгу цэлыя значэння тыпу. 267 00:11:26,730 --> 00:11:30,920 >> Дакладна тут, я магу стварыць тры з якая плавае коскі за адзін раз. 268 00:11:30,920 --> 00:11:33,350 Я магу, можа быць, стварыць зменную называецца квадратны корань з 2-- 269 00:11:33,350 --> 00:11:35,766 якія, як мяркуецца, у канчатковым рахунку ўтрымлівайце плавае point-- 270 00:11:35,766 --> 00:11:39,222 што прадстаўленне на плошчы корань 2-- квадратны корань з 3, і пі. 271 00:11:39,222 --> 00:11:41,180 Я мог бы зрабіць гэта на трох асобных ліній. 272 00:11:41,180 --> 00:11:47,690 Паплавок, квадратны корань 2; Паплавок квадратны корань 3; плаваць пі; і што будзе працаваць таксама. 273 00:11:47,690 --> 00:11:50,590 >> Але, зноў жа, я магу толькі аб'яднаць гэта ў адным радку кода. 274 00:11:50,590 --> 00:11:54,050 Робіць рэчы крыху карацей, а не як нязграбным. 275 00:11:54,050 --> 00:11:57,259 >> У цяперашні час у агульным, гэта добры дызайн, каб толькі абвясціць зменную, калі вам гэта трэба. 276 00:11:57,259 --> 00:11:59,050 І мы будзем казаць трохі трохі больш аб тым, што 277 00:11:59,050 --> 00:12:00,945 пазней у ходзе калі мы будзем абмяркоўваць маштабы. 278 00:12:00,945 --> 00:12:03,320 Так што не абавязкова павінны стварыць усе вашыя зменныя 279 00:12:03,320 --> 00:12:05,990 у пачатку праграмы, якая некаторыя людзі маглі б зрабіць мінулае, 280 00:12:05,990 --> 00:12:08,700 або, вядома, вельмі распаўсюджаная практыка кадавання шмат гадоў таму 281 00:12:08,700 --> 00:12:11,700 пры працы з С. Вы можаце проста хочаце стварыць зменную правоў, калі 282 00:12:11,700 --> 00:12:13,140 вам гэта трэба. 283 00:12:13,140 --> 00:12:13,640 Добра. 284 00:12:13,640 --> 00:12:15,150 Такім чынам, мы стварылі зменныя. 285 00:12:15,150 --> 00:12:16,790 Як мы іх выкарыстоўваць? 286 00:12:16,790 --> 00:12:18,650 Пасля таго як мы аб'явіць Пераменная, мы не павінны 287 00:12:18,650 --> 00:12:21,237 пазначыць тып дадзеных гэтай зменнай больш. 288 00:12:21,237 --> 00:12:24,070 На самай справе, калі вы робіце гэта, вы маглі б у канчатковым выніку з некаторымі дзіўнымі наступствамі 289 00:12:24,070 --> 00:12:25,490 што мы накшталт замоўчваць цяпер. 290 00:12:25,490 --> 00:12:27,365 Але досыць сказаць ,, дзіўныя рэчы ідуць 291 00:12:27,365 --> 00:12:30,740 каб пачаць адбываецца калі вы неспадзявана зноў аб'яўляць зменныя з такім жа імем 292 00:12:30,740 --> 00:12:32,210 зноў і зноў. 293 00:12:32,210 --> 00:12:33,882 >> Дык вось у мяне ёсць чатыры радка. 294 00:12:33,882 --> 00:12:36,090 І ў мяне ёсць пару каментары там проста паказваюць 295 00:12:36,090 --> 00:12:37,840 што адбываецца на кожны радок проста, каб дапамагчы 296 00:12:37,840 --> 00:12:40,520 вы атрымліваеце размешчаны ў тое, што адбываецца. 297 00:12:40,520 --> 00:12:41,520 Так INT нумар;. 298 00:12:41,520 --> 00:12:42,520 Вы бачылі, што раней. 299 00:12:42,520 --> 00:12:44,000 Гэта аб'ява зменнай. 300 00:12:44,000 --> 00:12:46,670 >> Я цяпер стварылі зменную называецца лік, гэта 301 00:12:46,670 --> 00:12:48,970 здольны ўтрымліваць цэлыя значэння тыпу. 302 00:12:48,970 --> 00:12:50,210 Я абвясціў яго. 303 00:12:50,210 --> 00:12:53,770 >> Наступная радок я задаю значэнне на нумар. 304 00:12:53,770 --> 00:12:54,992 Колькасць роўная 17. 305 00:12:54,992 --> 00:12:55,950 Што там адбываецца? 306 00:12:55,950 --> 00:12:58,880 Я стаўлю колькасць 17 ўнутры гэтай зменнай. 307 00:12:58,880 --> 00:13:02,760 >> Так што, калі я калі-небудзь затым раздрукаваць тое, што змесціва колькасці з'яўляюцца пазней, 308 00:13:02,760 --> 00:13:04,030 яны скажуць мне, што гэта 17. 309 00:13:04,030 --> 00:13:07,030 Так што я абвясціў зменную, а затым я прызначаны яго. 310 00:13:07,030 --> 00:13:10,570 >> Мы можам паўтарыць працэс зноў паўкокс лісьце;. 311 00:13:10,570 --> 00:13:11,640 Гэтую заяву. 312 00:13:11,640 --> 00:13:14,010 Ліст роўная капітал Х. Гэта прызначэнне. 313 00:13:14,010 --> 00:13:16,030 Даволі проста, занадта. 314 00:13:16,030 --> 00:13:18,319 >> Зараз гэты працэс можа здаецца дурное. 315 00:13:18,319 --> 00:13:20,110 Чаму мы гэта робім ў двух радкоў кода? 316 00:13:20,110 --> 00:13:21,401 Ці ёсць лепшы спосаб зрабіць гэта? 317 00:13:21,401 --> 00:13:22,250 На самай справе, ёсць. 318 00:13:22,250 --> 00:13:24,375 Часам вы можаце ўбачыць гэта называецца ініцыялізацыі. 319 00:13:24,375 --> 00:13:28,446 Гэта калі вы аб'яўляеце зменную і прысвоіць значэнне, у той жа час. 320 00:13:28,446 --> 00:13:30,320 Гэта на самай справе даволі агульная рэч, каб зрабіць. 321 00:13:30,320 --> 00:13:32,870 Калі вы ствараеце зменную, вы, як правіла хачу, каб мець некаторыя базавыя каштоўнасці. 322 00:13:32,870 --> 00:13:34,330 Нават калі гэта 0 або што-то. 323 00:13:34,330 --> 00:13:36,180 Вы проста даяце яму значэнне. 324 00:13:36,180 --> 00:13:38,360 >> Вы можаце ініцыялізаваць зменную. 325 00:13:38,360 --> 00:13:42,320 Int лік роўна 17 гэтак жа, як першыя два радкі кода наверсе. 326 00:13:42,320 --> 00:13:46,829 Знакавае ліст роўны ч тое ж самае, як Трэцяя і чацвёртая радкі кода вышэй. 327 00:13:46,829 --> 00:13:49,620 Найбольш важным тут вынас калі мы дэкларавання і прысваення 328 00:13:49,620 --> 00:13:51,740 зменных пасля таго як мы заявіў, апавяшчэнне 329 00:13:51,740 --> 00:13:53,700 Я не раз з выкарыстаннем тыпу дадзеных. 330 00:13:53,700 --> 00:13:57,916 Я не кажу, INT лік роўна 17 на другая радок кода, да прыкладу. 331 00:13:57,916 --> 00:13:59,290 Я проста кажу, колькасць якіх роўна 17. 332 00:13:59,290 --> 00:14:02,537 >> Зноў жа, паўторна абвясціўшы зменную пасля Вы ўжо заявіў, што можа прывесці 333 00:14:02,537 --> 00:14:03,620 у нейкай дзіўнай следства. 334 00:14:03,620 --> 00:14:05,950 Так што будзьце асцярожныя, што. 335 00:14:05,950 --> 00:14:06,660 >> Я Дуг Лойд. 336 00:14:06,660 --> 00:14:08,870 І гэта CS50. 337 00:14:08,870 --> 00:14:10,499