1 00:00:06,650 --> 00:00:09,390 [Powered by Google Translate] JOE MCCORMICK: Така че сега ние ще говорим за променливи. 2 00:00:09,390 --> 00:00:13,270 Променливи в областта на компютърните науки са начин за съхраняване на стойност. 3 00:00:13,270 --> 00:00:14,980 Сега, какво и как ние съхраняваме, че 4 00:00:14,980 --> 00:00:16,210 стойност не е толкова важно. 5 00:00:16,210 --> 00:00:19,780 Ние можем да имаме стойност, която е една дума, която би могла 6 00:00:19,780 --> 00:00:21,170 да се съхранява като низ. 7 00:00:21,170 --> 00:00:23,160 Или бихме могли да имаме нещо, което е знак, 8 00:00:23,160 --> 00:00:24,110 като писмо. 9 00:00:24,110 --> 00:00:26,420 И това ще бъдат съхранявани като знак. 10 00:00:26,420 --> 00:00:29,660 Ние може да има номер, като един или 12, това би било 11 00:00:29,660 --> 00:00:32,310 съхранява като цяло число или вътр. 12 00:00:32,310 --> 00:00:35,940 След това, ние имаме различни неща, като с плаваща запетая, които могат да съхраняват 13 00:00:35,940 --> 00:00:41,700 неща като 1.01 или 111.13. 14 00:00:41,700 --> 00:00:43,530 Тези стойности са винаги се нарича непостоянен. 15 00:00:43,530 --> 00:00:46,490 Това означава, че ако ние съхранява номер едно в цяло число 16 00:00:46,490 --> 00:00:49,490 в началото на програмата по-късно, можем да променим това число 17 00:00:49,490 --> 00:00:51,460 бъде три или седем. 18 00:00:51,460 --> 00:00:53,890 Сега, на локалната променлива е това, което обикновено ще срещнете, 19 00:00:53,890 --> 00:00:55,250 при изпълнение на определена функция. 20 00:00:55,250 --> 00:00:57,260 Така че нека да кажем, че сте в рамките на основната си функция. 21 00:00:57,260 --> 00:00:59,910 И вие искате да създадете променлива, наречена бр. 22 00:00:59,910 --> 00:01:01,240 И ние ще се съхранява цяло число в него. 23 00:01:01,240 --> 00:01:04,680 Така че бихме могли да кажем нещо като Int бр = 3. 24 00:01:04,680 --> 00:01:05,319 Сега, там ще отида. 25 00:01:05,319 --> 00:01:06,830 Вие имате локална променлива. 26 00:01:06,830 --> 00:01:09,670 Сега, тази променлива може да бъде променена по-късно в основната 27 00:01:09,670 --> 00:01:13,700 функция, като казва нещо подобно бр = 6 или брой = 7. 28 00:01:13,700 --> 00:01:15,940 Но променлива се заби в рамките на 29 00:01:15,940 --> 00:01:18,320 обхвата на тази функция. 30 00:01:18,320 --> 00:01:21,690 И обикновено започва с фигурна скоба в обхвата 31 00:01:21,690 --> 00:01:23,990 в началото на главната и завършва с фигурна скоба, че 32 00:01:23,990 --> 00:01:26,230 затваря основната функция. 33 00:01:26,230 --> 00:01:29,610 И тази локална променлива се сега остана в този обхват. 34 00:01:29,610 --> 00:01:32,200 Така че вече не могат да бъдат достъпни в друга функция, 35 00:01:32,200 --> 00:01:33,950 извън основната функция. 36 00:01:33,950 --> 00:01:36,230 И след като основната функция завършва нейното изпълнение и 37 00:01:36,230 --> 00:01:40,460 се връща, е отишъл тази локална променлива, наречена бр. 38 00:01:40,460 --> 00:01:42,760 Така че в контраст с локални променливи, ние имаме нещо 39 00:01:42,760 --> 00:01:43,970 глобални променливи. 40 00:01:43,970 --> 00:01:46,890 Сега, глобална променлива е декларирана при върха на 41 00:01:46,890 --> 00:01:49,860 програма и могат да бъдат достъпни навсякъде в програмата. 42 00:01:49,860 --> 00:01:51,805 Така че нека да кажем, че обявява глобална променлива в горната част на 43 00:01:51,805 --> 00:01:53,200 си програма, наречена тест. 44 00:01:53,200 --> 00:01:54,990 Сега, тази променлива може да бъде достъпен 45 00:01:54,990 --> 00:01:56,000 навсякъде в програмата. 46 00:01:56,000 --> 00:01:58,230 Можете да получите достъп до него в основната си функция или функция 47 00:01:58,230 --> 00:01:59,300 по-долу. 48 00:01:59,300 --> 00:02:02,210 Но ако сте някога се опита да се създаде локална променлива в един от 49 00:02:02,210 --> 00:02:04,170 тези функции, със същото име като 50 00:02:04,170 --> 00:02:05,880 тестове, има конфликт. 51 00:02:05,880 --> 00:02:07,720 Защото не знаят коя променлива искате да използвате. 52 00:02:07,720 --> 00:02:09,039 Искате ли да използват глобалната тест, 53 00:02:09,039 --> 00:02:10,910 декларирани в горната програма? 54 00:02:10,910 --> 00:02:12,495 Или искате да използвате локалната променлива тест, който 55 00:02:12,495 --> 00:02:14,920 се опитвате да се създаде в рамките на тази функция? 56 00:02:14,920 --> 00:02:16,700 Сега, това е една от причините, поради които не искат да 57 00:02:16,700 --> 00:02:18,960 просто използвайте глобални променливи свободно. 58 00:02:18,960 --> 00:02:21,570 Има нещо, което се нарича задръстват името пространство. 59 00:02:21,570 --> 00:02:23,940 Дори и да не искам да кажа, може случайно да се създаде 60 00:02:23,940 --> 00:02:26,270 локална променлива, по-късно в програмата, с едни и същи 61 00:02:26,270 --> 00:02:28,140 име като глобална променлива. 62 00:02:28,140 --> 00:02:30,130 И това не представлява огромен проблем, когато работите в 63 00:02:30,130 --> 00:02:33,120 малък от 10, 20, 30-лайн програми. 64 00:02:33,120 --> 00:02:35,520 След като имате до хиляди реда код, няма 65 00:02:35,520 --> 00:02:38,740 спомням точно това, което сте съхранили за глобална променлива. 66 00:02:38,740 --> 00:02:41,000 Така че едно нещо, което трябва да се разгледа, когато се използва локално и глобално 67 00:02:41,000 --> 00:02:43,570 променливи е да се мисли за техния обхват. 68 00:02:43,570 --> 00:02:47,270 Сега, обхват се отнася до мястото, където тези променливи могат да бъдат използвани в 69 00:02:47,270 --> 00:02:48,500 програмата. 70 00:02:48,500 --> 00:02:51,080 Така глобална променлива е това, което се нарича глобален обхват, 71 00:02:51,080 --> 00:02:53,820 което означава, че може да се използва навсякъде в програмата. 72 00:02:53,820 --> 00:02:56,860 След като се инициализира тази променлива, тя може да се използва в 73 00:02:56,860 --> 00:03:00,530 всяка функция, независимо дали това е основната функция или 74 00:03:00,530 --> 00:03:03,780 функция 10 функции надолу, наречен foo10. 75 00:03:03,780 --> 00:03:05,160 Няма значение къде да го използвате. 76 00:03:05,160 --> 00:03:07,490 Локална променлива има определен обхват. 77 00:03:07,490 --> 00:03:09,800 И обхвата на тази локална променлива се определя от 78 00:03:09,800 --> 00:03:11,030 където се инициализира. 79 00:03:11,030 --> 00:03:13,680 Сега, обхватът обикновено се определя от отварянето 80 00:03:13,680 --> 00:03:16,540 презрамки на функцията, която променливата е обявена, докато 81 00:03:16,540 --> 00:03:18,300 затваряща скоба на тази функция. 82 00:03:18,300 --> 00:03:19,730 Така че нека да кажем, че сте в основната функция. 83 00:03:19,730 --> 00:03:21,410 И създаде променлива. 84 00:03:21,410 --> 00:03:23,110 Но сега, в рамките на тази основна функция, ние наричаме друг 85 00:03:23,110 --> 00:03:24,640 функционира Foo. 86 00:03:24,640 --> 00:03:27,070 Във функцията Foo, ние не може да се обадите на променлива ние просто 87 00:03:27,070 --> 00:03:29,940 създадена през основната функция, защото тя не е в обхват. 88 00:03:29,940 --> 00:03:33,410 Тази променлива е само в полето, в рамките на основната функция. 89 00:03:33,410 --> 00:03:36,540 Така че бихме могли да го използвате по-нататък, в рамките на основната функция, но 90 00:03:36,540 --> 00:03:40,650 а не в рамките на една функция, която се нарича от основната функция. 91 00:03:40,650 --> 00:03:43,390 Така че, както стека и на куп, глобалните променливи са 92 00:03:43,390 --> 00:03:45,580 съхраняват в определена част от паметта. 93 00:03:45,580 --> 00:03:47,665 Сега, в тази част на паметта зависи от системата, която 94 00:03:47,665 --> 00:03:48,490 , която използвате. 95 00:03:48,490 --> 00:03:50,840 Глобални променливи имат две отделни петна, които са 96 00:03:50,840 --> 00:03:54,570 съхраняват, за инициализирани глобални променливи, като например, ако 97 00:03:54,570 --> 00:03:58,130 бяхте обявен INT изпитване = 5, в горната част на вашата програма. 98 00:03:58,130 --> 00:04:01,010 И друга област е за unitialized глобални променливи, 99 00:04:01,010 --> 00:04:03,190 ако току-що каза, вътр тестове, в горната част на вашата програма и 100 00:04:03,190 --> 00:04:05,040 ще тестовите променливи 101 00:04:05,040 --> 00:04:07,626 по-късно в програмата. 102 00:04:07,626 --> 00:04:10,140 Така че сега аз отивам да се говори за нещо, наречено # определят, 103 00:04:10,140 --> 00:04:13,380 което е начин да се даде символично име на константа. 104 00:04:13,380 --> 00:04:17,420 И тук имаме пример за програма на C, която изчислява 105 00:04:17,420 --> 00:04:19,470 площ на кръг. 106 00:04:19,470 --> 00:04:21,690 И в горната част на програмата ще направим нещо, което казва 107 00:04:21,690 --> 00:04:25,830 # Определят пи 3.14159. 108 00:04:25,830 --> 00:04:29,330 # Определят не технически създаване на глобална променлива. 109 00:04:29,330 --> 00:04:31,590 Вместо това, тя казва предпроцесорни компилатора 110 00:04:31,590 --> 00:04:34,350 търсене и заместване на всички случаи на пи с 111 00:04:34,350 --> 00:04:37,540 3.14159 преди съставянето. 112 00:04:37,540 --> 00:04:39,830 Въпреки това, тя се превръща в полезна техника за деклариране 113 00:04:39,830 --> 00:04:41,510 константи, за използване по време на програмата. 114 00:04:41,510 --> 00:04:44,540 Сега, в района функция, е необходимо в поплавъка 115 00:04:44,540 --> 00:04:48,150 рад и просто връща площ на окръжност с това 116 00:04:48,150 --> 00:04:52,920 радиус или пи R квадрат, или пи пъти Рад Рад пъти. 117 00:04:52,920 --> 00:04:56,040 И това е мястото, където # определят играе ключова роля. 118 00:04:56,040 --> 00:04:59,270 Тъй като съставител на практика ще замени пи 119 00:04:59,270 --> 00:05:02,780 символ с броя 3.14159. 120 00:05:02,780 --> 00:05:05,560 И така, ние не трябва да напиша, че отново и отново. 121 00:05:05,560 --> 00:05:08,900 И по-късно, ако решим да използваме повече цифри на Пи, нека 122 00:05:08,900 --> 00:05:12,800 каже 3.1415926, бихме могли просто да се добави, че на върха на 123 00:05:12,800 --> 00:05:14,330 програма и не би трябвало да го промените, 124 00:05:14,330 --> 00:05:16,160 по-късно в програмата. 125 00:05:16,160 --> 00:05:18,240 Това е добро използване на # определят. 126 00:05:18,240 --> 00:05:20,520 Ние не искаме да се съхранява пи като глобална променлива, тъй като 127 00:05:20,520 --> 00:05:21,780 може да се промени по-късно в програмата. 128 00:05:21,780 --> 00:05:23,430 И ние знаем, пи не се променя. 129 00:05:23,430 --> 00:05:25,650 Това е постоянна. 130 00:05:25,650 --> 00:05:28,120 Така че това завърши тема на глобалните променливи. 131 00:05:28,120 --> 00:05:29,930 Така че днес ние говорихме за разликата между местните и 132 00:05:29,930 --> 00:05:32,490 глобални променливи, кога да ги използват, в зависимост от тяхната 133 00:05:32,490 --> 00:05:36,660 обхват; и защо да не се използват глобални променливи по желание 134 00:05:36,660 --> 00:05:39,360 поради задръстват на името пространство. 135 00:05:39,360 --> 00:05:40,270 Аз съм Джо McCormick. 136 00:05:40,270 --> 00:05:42,290 И това е CS50.