1 00:00:00,000 --> 00:00:03,944 >> [음악 재생] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 데이비드 마란 : 좋아. 4 00:00:11,690 --> 00:00:14,674 이것은 CS50이며,이 주 (2)의 단부이다. 5 00:00:14,674 --> 00:00:16,840 내가 수 없습니다 정말 미안 해요 이 모든 오늘 당신과 함께, 6 00:00:16,840 --> 00:00:18,300 하지만 당신은 아주 좋은 손에있어. 7 00:00:18,300 --> 00:00:21,710 저를 소개 할 수 있도록 허용 CS50 자신의 롭 보덴. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 롭 BOWDEN : 그리고 물론, 다음 우리는 사실의 재미를 확인해야합니다 10 00:00:31,730 --> 00:00:36,820 그는 우리에게 수직을 보냈다고 비디오 및이 표시됩니다. 11 00:00:36,820 --> 00:00:38,320 >> [비디오 재생] 12 00:00:38,320 --> 00:00:39,820 >> [음악 재생] 13 00:00:39,820 --> 00:00:42,350 >> [발자취] 14 00:00:42,350 --> 00:00:44,730 >> -이 비디오는하지 않았다 이 방법으로보고있다. 15 00:00:44,730 --> 00:00:46,570 그것은 막을 수 있었다. 16 00:00:46,570 --> 00:00:49,070 더 수직 동영상을 말합니다. 17 00:00:49,070 --> 00:00:53,310 >> - 수직 동영상을 때 일이 카메라 잘못된 방향으로 누르고 있습니다. 18 00:00:53,310 --> 00:00:55,880 동영상이 종료됩니다 최대 쓰레기처럼 보이는. 19 00:00:55,880 --> 00:00:57,650 >> - [그런트] 20 00:00:57,650 --> 00:01:02,240 >> 중독 점점 더 많은 사람들이 저기있다 매일 수직 비디오를 만들기 위해. 21 00:01:02,240 --> 00:01:06,240 이 균열되거나 아무것도 아니에요, 하지만 여전히 정말 나쁜입니다. 22 00:01:06,240 --> 00:01:10,410 서로 다른 두 가지 종류가 있습니다 VVS을 앓고있는 사람들. 23 00:01:10,410 --> 00:01:14,160 첫 번째 그룹은 취급 동영상은 사진처럼 촬영합니다. 24 00:01:14,160 --> 00:01:15,850 그들은 어떤 해를 의미하지 않는다. 25 00:01:15,850 --> 00:01:19,180 그들은 그냥 이해가 안 돼요 당신이 사진을 설정할 수 있지만, 26 00:01:19,180 --> 00:01:20,880 당신이 정말로 비디오를 켤 수 없습니다. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [원숭이 소리] 29 00:01:23,460 --> 00:01:27,540 >> 년 - 다른 그룹의 사람들입니다 누가 [삐] 포기하지 않습니다. 30 00:01:27,540 --> 00:01:31,090 >> - 수직 비디오 증후군 위험합니다. 31 00:01:31,090 --> 00:01:34,120 동영상 사진은이 항상 수평이었다. 32 00:01:34,120 --> 00:01:35,990 텔레비전은 수평이다. 33 00:01:35,990 --> 00:01:38,380 컴퓨터 화면은 수평이다. 34 00:01:38,380 --> 00:01:41,580 사람들의 눈은 수평이다. 35 00:01:41,580 --> 00:01:45,170 우리는에 만들어지는 것이 아니다 수직 동영상을 감상. 36 00:01:45,170 --> 00:01:47,600 >> - 난 수직 비디오를 사랑 해요. 37 00:01:47,600 --> 00:01:50,410 >> 아무도 없어요 당신에 대한 관심. 38 00:01:50,410 --> 00:01:53,340 >> -if이 문제의 체크, 당신이 너무 왼쪽으로 39 00:01:53,340 --> 00:01:57,650 네 개의 비디오를 보여주는 시작됩니다 한 번에 단지 대역폭을 저장합니다. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed 수직 동영상 것 우표의 크기. 41 00:02:02,400 --> 00:02:04,920 >> - 그리고 그것은 도처에 확산됩니다. 42 00:02:04,920 --> 00:02:07,670 동영상 화면이 항상 수평이었다. 43 00:02:07,670 --> 00:02:11,200 수직 비디오가 될 경우 허용, 영화관 44 00:02:11,200 --> 00:02:13,930 키가 크고 마른 체형해야 할 것이다. 45 00:02:13,930 --> 00:02:17,710 >> - 그리고 영화관의 모든 것 철거 및 재건 얻을 수 있습니다. 46 00:02:17,710 --> 00:02:22,090 그리고 시간에 그들은 다시했다, 밀라 쿠니스는 과거와 못생긴 것입니다. 47 00:02:22,090 --> 00:02:24,342 >> -Birds 그들에 충돌하고 죽을 것이다. 48 00:02:24,342 --> 00:02:26,530 >> 되겠지 그럼 모두 뻣뻣한 얻을 찾고에서 목. 49 00:02:26,530 --> 00:02:29,800 >> - 그리고 아무도에 앉아 없습니다 앞줄 다시. 50 00:02:29,800 --> 00:02:37,170 >> - 조지 루카스가 다시 해제합니다 스타 전쟁 마른 버전을 again--. 51 00:02:37,170 --> 00:02:41,860 >> - 난 말할 정말 수 없었어 내가 말하고 싶었던 이야기. 52 00:02:41,860 --> 00:02:46,030 이것은 나를 위해 좋은 기회였다 새로운 기술을 실험. 53 00:02:46,030 --> 00:02:48,150 >> 바보 - 넌. 54 00:02:48,150 --> 00:02:54,430 >> 모바일 장치에 사용되는 -Every 시간 기록 비디오, 유혹이있다. 55 00:02:54,430 --> 00:02:56,370 그냥 '아니오'라고. 56 00:02:56,370 --> 00:03:00,116 조지 루카스에 '아니오'라고. 57 00:03:00,116 --> 00:03:04,062 이전 밀라 쿠니스에 '아니오'라고. 58 00:03:04,062 --> 00:03:06,600 더 수직 동영상을 말합니다. 59 00:03:06,600 --> 00:03:12,511 >> 당신이 누군가가 그 일을 보는 경우에 - 그리고, 말 "당신은 그 권리 더미를 촬영하지있어!" 60 00:03:12,511 --> 00:03:15,433 >> [음악 재생] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [END 재생] 63 00:03:19,830 --> 00:03:23,702 >> [박수] 64 00:03:23,702 --> 00:03:27,598 >> [AUDIO OUT] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 롭 BOWDEN : --simple 암호의 형태, 67 00:03:45,790 --> 00:03:49,500 이는 기본적으로 암호화입니다 비밀 메시지 및 암호 해독. 68 00:03:49,500 --> 00:03:52,590 그래서 여기에 우리는 매우 단순한 장난감이있다. 69 00:03:52,590 --> 00:03:56,900 상기 아이디어는 외륜이며 내부 링 주위를 회​​전한다. 70 00:03:56,900 --> 00:04:01,610 그리고 당신은 내가 확대 어쩌면 경우, 볼 수 있습니다 에, 그것은 보이지 하라구, 그건 ... 71 00:04:01,610 --> 00:04:05,090 그러나, 같은 숫자 1-- 아니라, 그 이동. 72 00:04:05,090 --> 00:04:09,120 >> 숫자 1은 문자에 매핑 편지에 ​​X, 2 번지도 73 00:04:09,120 --> 00:04:11,630 J. 어려운 믿을 수 없을만큼 앞으로 건너 뛸 수 없습니다. 74 00:04:11,630 --> 00:04:16,100 편지 2 제이에 매핑 번호 3 그래서 D.에 매핑 75 00:04:16,100 --> 00:04:20,140 이 반지는 제공 할 수 있습니다 누군가 메시지가 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 어떤 이유로 당신을 위해 그들에게 XJD을 말하고 싶다. 77 00:04:22,624 --> 00:04:24,540 하지만 당신은 그 (것)들을 제공 할 수 있습니다 숫자의 몇 가지 메시지, 78 00:04:24,540 --> 00:04:28,460 그들은이 링을 한, 그들은 당신이 말하고자하는지 해독 할 수 있습니다. 79 00:04:28,460 --> 00:04:32,510 >> 그래서 당신이 본 하셨을 수도 있습니다 암호화의 특정 예 80 00:04:32,510 --> 00:04:36,640 전에 크리스마스 시즌 주위 경우 당신은 크리스마스 이야기를 봤다. 81 00:04:36,640 --> 00:04:38,520 당신은 본 적이 경우 그 전에, 다음 단지 82 00:04:38,520 --> 00:04:41,060 문자 그대로에 TBS를 켭니다 크리스마스 이브에 언제, 83 00:04:41,060 --> 00:04:44,510 그들은 단지 다시 다시 보여 있기 때문에 하루 종일 다시 다시 다시합니다. 84 00:04:44,510 --> 00:04:46,744 그리고 관련 동영상이 있습니다. 85 00:04:46,744 --> 00:04:47,410 [비디오 재생] 86 00:04:47,410 --> 00:04:50,020 이 모든 잡다한에 알려진 -bE 랄프 파커는 이로써입니다 87 00:04:50,020 --> 00:04:52,850 리틀의 일원으로 임명 고아 애니 비밀 서클 88 00:04:52,850 --> 00:04:56,490 모든 명예를받을 권리가있다 및 혜택은 이에 발생. 89 00:04:56,490 --> 00:04:59,010 리틀 고아 애니 서명했다. 90 00:04:59,010 --> 00:05:03,120 잉크 피에르 앙드레 연대! 91 00:05:03,120 --> 00:05:07,460 명예와 혜택 이미 아홉의 나이에! 92 00:05:07,460 --> 00:05:12,530 >> [라디오에서의 외침] 93 00:05:12,530 --> 00:05:13,030 - 이리. 94 00:05:13,030 --> 00:05:14,000 의 그것과에하자. 95 00:05:14,000 --> 00:05:18,274 나는 모든 재즈가 필요하지 않습니다 밀수업자와 해적에 대한. 96 00:05:18,274 --> 00:05:20,440 함께 들어 봐요 내일 밤 결론 모험 97 00:05:20,440 --> 00:05:22,540 블랙 해적선의. 98 00:05:22,540 --> 00:05:25,460 지금, 그것은 시간이다 애니의 비밀 메시지 99 00:05:25,460 --> 00:05:28,620 비밀 서클의 당신 회원. 100 00:05:28,620 --> 00:05:32,370 아이, 회원 만 기억 애니의 비밀 서클의 101 00:05:32,370 --> 00:05:34,880 애니의 비밀 메시지를 디코딩 할 수있다. 102 00:05:34,880 --> 00:05:39,100 기억, 애니는 당신에 따라 있습니다. 103 00:05:39,100 --> 00:05:41,660 B2에 핀을 설정합니다. 104 00:05:41,660 --> 00:05:43,960 여기서 메시지이다. 105 00:05:43,960 --> 00:05:44,680 (12). 106 00:05:44,680 --> 00:05:45,180 (11). 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 - 난 내 첫 번째 비밀 회의입니다. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 (14). 111 00:05:49,834 --> 00:05:51,040 (11). 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 (16). 114 00:05:52,670 --> 00:05:54,570 >> - 오, 피에르 큰 음성 오늘 밤에 있습니다. 115 00:05:54,570 --> 00:05:57,490 나는 오늘의 말할 수 메시지가 정말 중요했다. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 즉, 애니 자신의 메시지입니다. 119 00:06:01,580 --> 00:06:02,880 아무에게도 말하지 않는 기억. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> - 다섯 초 후에, 나는 단지에있어 집에 방 어디 아홉의 소년 122 00:06:11,130 --> 00:06:15,830 개인 정보 보호 및 디코딩에 앉아 있었다. 123 00:06:15,830 --> 00:06:16,620 아하! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 나는 다음에 갔다. 126 00:06:20,210 --> 00:06:23,300 E. 첫 번째 단어는 "수"입니다. 127 00:06:23,300 --> 00:06:25,880 S.는 이제 쉽게오고 있었다. 128 00:06:25,880 --> 00:06:28,400 미국 (25). 129 00:06:28,400 --> 00:06:30,528 즉, R.있어 130 00:06:30,528 --> 00:06:31,278 - 이리에, Ralphie! 131 00:06:31,278 --> 00:06:31,861 내가 꼭 가야했습니다! 132 00:06:31,861 --> 00:06:33,182 오른쪽으로 오티스, 엄마! 133 00:06:33,182 --> 00:06:36,038 맙소사. 134 00:06:36,038 --> 00:06:42,840 무엇을해야 - 토니 오는 "반드시"? 135 00:06:42,840 --> 00:06:44,770 어린 고아이었다 무엇 애니 말하려고? 136 00:06:44,770 --> 00:06:46,381 무엇을해야? 137 00:06:46,381 --> 00:06:47,825 >> -Randy 가야했다! 138 00:06:47,825 --> 00:06:48,866 당신은 나와 주시겠습니까? 139 00:06:48,866 --> 00:06:49,783 >> - 모든 권리, 엄마! 140 00:06:49,783 --> 00:06:51,786 금방 나올 것이다! 141 00:06:51,786 --> 00:06:53,606 나는 가까이 지금 얻고 있었다. 142 00:06:53,606 --> 00:06:55,550 긴장은 끔찍했다. 143 00:06:55,550 --> 00:06:57,050 그것은 무엇인가? 144 00:06:57,050 --> 00:06:59,905 행성의 운명 균형에 응답하지 않을 수 있습니다! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, 랜디 가야! 146 00:07:01,736 --> 00:07:05,680 >> 큰 소리로 우는 바로 나올 할께! 147 00:07:05,680 --> 00:07:07,170 거의 다 왔어! 148 00:07:07,170 --> 00:07:08,150 내 손가락이 날아 갔다. 149 00:07:08,150 --> 00:07:09,980 내 마음은 강철 덫이었다. 150 00:07:09,980 --> 00:07:11,496 모든 구멍은 진동. 151 00:07:11,496 --> 00:07:13,268 그것은 거의 분명했다! 152 00:07:13,268 --> 00:07:13,767 네. 153 00:07:13,767 --> 00:07:14,609 네. 154 00:07:14,609 --> 00:07:15,108 네. 155 00:07:15,108 --> 00:07:16,449 네. 156 00:07:16,449 --> 00:07:20,240 당신의 Ovaltine을 마실해야합니다. 157 00:07:20,240 --> 00:07:20,740 Ovaltine? 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 지저분한 상업? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 개자식. 162 00:07:34,920 --> 00:07:35,890 >> [END 재생] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN : 그래서 그 방법 Ovaltine는 암호화에 관한 것이다. 164 00:07:39,650 --> 00:07:42,290 기본적으로 CS50는 광고 Ovaltine, 그래서 우리는 할 수 165 00:07:42,290 --> 00:07:44,400 Ovaltine에 대한 싸구려 상업합니다. 166 00:07:44,400 --> 00:07:44,900 괜찮아. 167 00:07:44,900 --> 00:07:47,120 이제 실제 컴퓨터 과학. 168 00:07:47,120 --> 00:07:50,670 월요일에 기억 우리는 중단 문자열에 깊은 다이빙. 169 00:07:50,670 --> 00:07:52,820 그래서 우리는 처리했다 문자열 "Zamyla." 170 00:07:52,820 --> 00:07:55,130 그리고 우리는 인식되었다 우리가 처리 할 수​​ 있다는 사실 171 00:07:55,130 --> 00:07:57,510 일련의 문자로 "Zamyla". 172 00:07:57,510 --> 00:07:59,740 그리고 우리가 배운 것을 기억 대괄호 표기법. 173 00:07:59,740 --> 00:08:01,995 이 저장되어 있다면 다음 문자열에 "S" 174 00:08:01,995 --> 00:08:05,860 우리가 말했다 경우의 브래킷 0, 그 것 편지 자본 (Z)를 표시 175 00:08:05,860 --> 00:08:09,790 그리고 우리의 브래킷 (1),라고하는 경우 첫 번째 소문자를 나타냅니다, 176 00:08:09,790 --> 00:08:14,220 등의 브래킷 (5)까지, 이는 마지막을 나타냅니다. 177 00:08:14,220 --> 00:08:17,090 >> 이제 기억 이 문자열의 길이는 6입니다 178 00:08:17,090 --> 00:08:23,220 하지만 캐릭터 라인의 인덱스는 0 ~ 5, 그 통해 Z는 마지막. 179 00:08:23,220 --> 00:08:28,650 그래서 지금은 더 큰 그림에 맞는 컴퓨터의 메모리, 당신의 RAM. 180 00:08:28,650 --> 00:08:32,020 그래서 어딘가에 프로그램이 당신은 당신의 컴퓨터를 실행하는 181 00:08:32,020 --> 00:08:34,780 Zamyla을 기억해야합니다 메모리의 어딘가에. 182 00:08:34,780 --> 00:08:36,029 그래서 자원 봉사를 할 수 있습니까? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 예, 부탁합니다. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 그리고 당신의 이름은 무엇인가? 187 00:08:51,500 --> 00:08:52,410 >> 딘 : 딘. 188 00:08:52,410 --> 00:08:53,550 >> 롭 BOWDEN : 딘? 189 00:08:53,550 --> 00:08:54,910 딘을 만나서 반갑습니다. 190 00:08:54,910 --> 00:08:58,240 그래서 여기 와서 우리는 당신이 그리 할 겁니다 191 00:08:58,240 --> 00:09:00,740 메모리 우리의 좋은 멋진 레이아웃. 192 00:09:00,740 --> 00:09:05,950 지금은 메모리를 생각하고 싶어요 바이트의 하나의 긴 스트립으로, 193 00:09:05,950 --> 00:09:11,090 하지만 단지 표시 목적으로 우리는거야 그냥 왼쪽에서 오른쪽, 위쪽에서 아래쪽 않습니다. 194 00:09:11,090 --> 00:09:11,590 그래? 195 00:09:11,590 --> 00:09:22,030 >> 그래서 보여거야 Getstrings.c을 program--. 196 00:09:22,030 --> 00:09:25,760 그리고이 모든 프로그램입니다 하 네 문자열을 요청 197 00:09:25,760 --> 00:09:28,830 와 사용자로부터 하여 GetString 다음 인쇄 198 00:09:28,830 --> 00:09:30,950 무엇이든 첫 번째 문자열을 입력하는 것은이었다. 199 00:09:30,950 --> 00:09:32,840 우리는 네를 통해 두 가지를 무시하고있다. 200 00:09:32,840 --> 00:09:33,610 그래. 201 00:09:33,610 --> 00:09:38,210 그래서 여기들을 당장 경우 내가 먼저 요청 (S1). 202 00:09:38,210 --> 00:09:39,740 그래서 당신은 컴퓨터입니다. 203 00:09:39,740 --> 00:09:41,680 그리고 당신하여 GetString을 구현하고 있습니다. 204 00:09:41,680 --> 00:09:46,710 그래서 당신은 문자열에서 요청 나, 나는, 확인, 딘을 말한다. 205 00:09:46,710 --> 00:09:47,900 문자열 줘 "딘." 206 00:09:47,900 --> 00:09:50,300 >> 그래서 어딘가 메모리에 당신 기억해야 "딘." 207 00:09:50,300 --> 00:09:52,160 그래서 어딘가 메모리에 쓰기. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 완벽한. 210 00:09:59,210 --> 00:09:59,880 그래. 211 00:09:59,880 --> 00:10:01,740 그래서 지금 우리는 S2있다. 212 00:10:01,740 --> 00:10:03,869 그리고 S2가 될 것입니다 하여 GetString에 요청. 213 00:10:03,869 --> 00:10:05,160 그래서 문자열을 입력거야. 214 00:10:05,160 --> 00:10:08,720 내가 입력하는거야 "한나를." 215 00:10:08,720 --> 00:10:10,586 그래서 어딘가 메모리에 "한나"를 입력합니다. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 그래. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> 좋아, 그럼 이제 S3. 220 00:10:25,550 --> 00:10:28,380 그리고 그것은 또 다른 될 것 하여 GetString에 요청합니다. 221 00:10:28,380 --> 00:10:37,020 그래서 지금 "마리아."를 입력 222 00:10:37,020 --> 00:10:37,520 괜찮아. 223 00:10:37,520 --> 00:10:40,980 그리고 마지막으로있다 하여 GetString에 요청, S4. 224 00:10:40,980 --> 00:10:42,580 그래서, 나도 몰라. 225 00:10:42,580 --> 00:10:45,640 어떻게 우리가 가야에 대해 antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 그래서 메모리에 저를 입력합니다. 227 00:10:49,460 --> 00:10:50,400 그래. 228 00:10:50,400 --> 00:10:53,970 그래서 그냥 "롭."할 229 00:10:53,970 --> 00:10:54,560 >> 그래. 230 00:10:54,560 --> 00:10:58,410 왜 그랬는지 이제 explain-- 당신은이 공간을 떠나? 231 00:10:58,410 --> 00:11:01,340 이 공백이 이유는 무엇입니까 여기, 여기, 그리고 여기까지 공간? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 네. 234 00:11:05,670 --> 00:11:09,450 내가 갈 때 그래서 알 그렇다면 s1-- 인쇄 우리 235 00:11:09,450 --> 00:11:11,890 했다 "한나"실행 바로 옆에 "딘" 236 00:11:11,890 --> 00:11:14,360 우리는 때 아는 방법 문자열 "딘은"끝? 237 00:11:14,360 --> 00:11:19,470 그래서 문자열 (S1)를 인쇄하는있을 수 있습니다 그냥 "DeanHannahMariaRob"인쇄 238 00:11:19,470 --> 00:11:22,720 그것은 어떠한 단서가없는 경우 "딘은"실제로 종료의 경우. 239 00:11:22,720 --> 00:11:23,240 >> 괜찮아. 240 00:11:23,240 --> 00:11:27,650 그래서 메모리의 방법 우리는 실제로 문자열의 끝을 나타내는 241 00:11:27,650 --> 00:11:29,940 백 슬래시 0으로합니다. 242 00:11:29,940 --> 00:11:32,620 그래서이 공간은 우리가 원하는 정확히입니다. 243 00:11:32,620 --> 00:11:34,040 그것은 백 슬래시 0이어야합니다. 244 00:11:34,040 --> 00:11:37,690 이 백 슬래시 0이됩니다 이 백 슬래시 0이됩니다. 245 00:11:37,690 --> 00:11:41,585 그리고 당신은 멋진 상을 가질 수있다 완벽한 자원 봉사 인을위한. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 스트레스 공을 잡아! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> 그래. 250 00:11:49,700 --> 00:11:54,420 그래서이 문자 백 슬래시 제로입니다 어떻게 우리는 문자열의 끝을 나타냅니다. 251 00:11:54,420 --> 00:11:57,120 그것은 어떻게하면 주어진 프로그램의 문자열을 인쇄하고 싶어 252 00:11:57,120 --> 00:11:59,760 우리가 배운 기억 how-- 그건 나 strlen 함수 지난 주? 253 00:11:59,760 --> 00:12:00,940 문자열 길이? 254 00:12:00,940 --> 00:12:03,770 그것은 문자열 길이가 수 방법 문자열 인 시간을 결정. 255 00:12:03,770 --> 00:12:05,810 그냥 반복 유지 문자를 통해 256 00:12:05,810 --> 00:12:08,217 그것을 발견 할 때까지 제로 문자를 백 슬래시. 257 00:12:08,217 --> 00:12:11,050 중요한 것은 실현 그래서 백 슬래시 제로 문자에 대한 258 00:12:11,050 --> 00:12:14,950 이 표현되어있어 비트 모두 0으로. 259 00:12:14,950 --> 00:12:18,980 그래서이 뚜렷한 것을 알 제로 문자에서. 260 00:12:18,980 --> 00:12:23,010 그래서 제로 문자, 당신은 기억한다면 예를 들어 그는 마지막에 준 261 00:12:23,010 --> 00:12:27,360 강의의 문자지도 곳 65 자본의지도와 같은 이러시면. 262 00:12:27,360 --> 00:12:29,130 97지도를 소문자. 263 00:12:29,130 --> 00:12:30,890 소문자 b를 98 것이다. 264 00:12:30,890 --> 00:12:35,220 그래서 숫자 0지도는 그렇게하지 ​​이러시면 내 머리 위로 떨어져 알고있다. 265 00:12:35,220 --> 00:12:36,400 (44) 또는 (45). 266 00:12:36,400 --> 00:12:37,890 어딘가에 그 지역에서. 267 00:12:37,890 --> 00:12:40,850 >> 그래서 문자 0은 실제 수있다. 268 00:12:40,850 --> 00:12:44,350 그러나 백 슬래시 제로 모두 0 비트 맵. 269 00:12:44,350 --> 00:12:46,380 그래서 차이가있다 백 슬래시 제로 사이, 270 00:12:46,380 --> 00:12:48,450 이는 우리가 널 (NULL) 종료를 호출합니다. 271 00:12:48,450 --> 00:12:53,210 구별 사이가있다 백 슬래시 제로 문자 제로. 272 00:12:53,210 --> 00:12:54,350 >> 괜찮아. 273 00:12:54,350 --> 00:12:57,520 그래서 문자열에 대한 자세한 조금 이야기. 274 00:12:57,520 --> 00:13:01,470 그럼 우리는 어떻게 여기를 참조하십시오 그것은 메모리에 배치 될 것이다. 275 00:13:01,470 --> 00:13:07,940 그래서 순서와 같은 문자열이 아이디어 characters--의 공식 컴퓨터가 그렇게 276 00:13:07,940 --> 00:13:10,750 시퀀스 sciency 용어는 배열입니다. 277 00:13:10,750 --> 00:13:13,790 그래서 우리는 문자열을 부를 것 문자의 배열. 278 00:13:13,790 --> 00:13:17,770 그리고 실제로 다른 데이터가 우리가 밖으로 배열을 만들 수 있습니다 유형. 279 00:13:17,770 --> 00:13:19,975 >> 그래서이 동기를 부여하기 위해, 예를 들어 봐. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 우리는 내가거야 ages0.c를 호출합니다 복사 우리의 템플릿을 붙여 넣습니다. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 그래. 284 00:13:33,410 --> 00:13:39,378 이 프로그램에 그래서 우리 하고 싶은 나이를 잡아이다 285 00:13:39,378 --> 00:13:45,160 과정에서 세 학생. 286 00:13:45,160 --> 00:13:49,240 그래서 우리가 알고있는 INT age-- 지금은 0을 말할거야. 287 00:13:49,240 --> 00:13:53,140 그래서 당신은 age1 말을하고 싶지만, 수 목적을 위해 우리는 매우 곧 볼 수 있습니다, 288 00:13:53,140 --> 00:13:57,187 나는 INT의 age0가의 getInt 동일 말할 것이다. 289 00:13:57,187 --> 00:13:59,270 getInt는 동일한 호출 그래서 우리는 내가를 사용했던 것을 290 00:13:59,270 --> 00:14:01,561 메시지를 표시 할 일이 없습니다 "나에게 나이를 제공합니다."라고 291 00:14:01,561 --> 00:14:03,120 그러나 단지를 요청합니다. 292 00:14:03,120 --> 00:14:06,510 >> 그리고 age1은의 getInt 같습니다. 293 00:14:06,510 --> 00:14:09,600 그리고 INT의 age2은의 getInt 같습니다. 294 00:14:09,600 --> 00:14:14,070 그래서, 다시, 세 학생 만 궁극적으로 변수 인덱스 295 00:14:14,070 --> 00:14:16,890 age2 통해 age0 있습니다. 296 00:14:16,890 --> 00:14:17,550 그래. 297 00:14:17,550 --> 00:14:23,960 그래서이 프로그램을 할 것입니다 어떤 우리는 age0, age1 및 age2으로 원하는, 298 00:14:23,960 --> 00:14:27,670 하지만이 프로그램은 궁극적으로 세 학생들을 위해 작동합니다. 299 00:14:27,670 --> 00:14:28,380 >> 그래. 300 00:14:28,380 --> 00:14:32,110 그래서 지금은 4 명의 학생이 원하는 경우에 무엇을? 301 00:14:32,110 --> 00:14:36,000 글쎄, 난 다시 가야하는거야 내 코드에 주석을 변경, 302 00:14:36,000 --> 00:14:39,840 그리고 지금 우리는 지능 age3은의 getInt 같습니다. 303 00:14:39,840 --> 00:14:40,610 그래. 304 00:14:40,610 --> 00:14:43,660 그럼 누가 여기에 문제를보고? 305 00:14:43,660 --> 00:14:47,310 문제는 무엇인가 설정의 종류와? 306 00:14:47,310 --> 00:14:47,810 그래. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 그래. 309 00:14:53,610 --> 00:14:56,360 그래서 우리는을 만드는 각 학생에 대한 변수입니다. 310 00:14:56,360 --> 00:15:00,140 이제 작동하지만, 궁극적으로 지금의 나는 경우 311 00:15:00,140 --> 00:15:06,500 내가 살을 잡아 싶다 "라고 학생 8 또는 16 명 312 00:15:06,500 --> 00:15:11,340 또는 그러나 많은 학생들 CS50 학생들의 수백 313 00:15:11,340 --> 00:15:16,750 캠퍼스에 학생의 수천 또는 세계에있는 사람들의 수십억? 314 00:15:16,750 --> 00:15:19,130 그래서 궁극적으로는 지속 가능하지 않다. 315 00:15:19,130 --> 00:15:21,990 당신이 자신을 복사 볼 때마다 이 같은 붙여 넣기 코드, 316 00:15:21,990 --> 00:15:25,050 당신은 일반적으로 느껴야한다 더 나은 방법이있다. 317 00:15:25,050 --> 00:15:31,290 >> 우리가 소개하는 곳 그래서이다 배열 선언. 318 00:15:31,290 --> 00:15:34,564 그래서 당신은 배열을 선언 할 때, 이것은 무엇 일반적인 형식입니다 319 00:15:34,564 --> 00:15:35,480 처럼 보일 것입니다. 320 00:15:35,480 --> 00:15:36,664 우리는 유형을 말하는 것입니다. 321 00:15:36,664 --> 00:15:38,830 그리고, 우리는 갈거야 그 배열의 이름을, 322 00:15:38,830 --> 00:15:41,150 단지 우리가 어떤 주어진 변수를 정의로. 323 00:15:41,150 --> 00:15:43,980 그리고 마지막으로 우리가 사용하는 이 브래킷 표기법 다시 324 00:15:43,980 --> 00:15:47,480 하지만과는 다른 맥락에서 어떻게 우리가 이전에 그것을 사용했다. 325 00:15:47,480 --> 00:15:51,860 >> 그래서 여기이 정상처럼 보이는 우리가 본 적이 변수 선언. 326 00:15:51,860 --> 00:15:54,890 그래서 우리는 전에 INT X 세미콜론을 보았다. 327 00:15:54,890 --> 00:16:00,020 그런데 지금 우리는 무언가를 볼 수 있습니다 INT X 브래킷 (5) 등을들 수있다. 328 00:16:00,020 --> 00:16:04,020 그리고에이 아이디어를 넣어 우리가 잔 마셔요의 getInt 프로그램 329 00:16:04,020 --> 00:16:08,850 그래서 우리는 구현할 수 있습니다 동일한 방식으로이. 330 00:16:08,850 --> 00:16:13,630 >> 의 우리가 사용하는 경향이 CS에 있다고 가정 해 봅시다 무언가의 수 N. 331 00:16:13,630 --> 00:16:16,150 그래서 여기에 우리가 갈거야 4 명의 학생을 저장합니다. 332 00:16:16,150 --> 00:16:25,960 그리고 지금 우리는 INT의 나이를 말할 수 브래킷은 확실히 그것을 yet--하지 N-- 333 00:16:25,960 --> 00:16:32,210 4 명의 학생의 배열을 선언합니다. 334 00:16:32,210 --> 00:16:38,050 그래서이에 어떻게 보일지 메모리는이 유사합니다. 335 00:16:38,050 --> 00:16:39,570 이 선택을 취소합니다. 336 00:16:39,570 --> 00:16:46,606 그리고 우리는 어딘가에있을거야 memory--에 내가 거기에이를 놓을 게요. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> 그래서 어딘가 메모리. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 하나 둘 셋 넷. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 우리는 행에 4 개의 정수가 네 개의 정수의 배열. 343 00:17:09,849 --> 00:17:13,820 그래서, 현재, 무엇 인 이 상자 중 하나의 크기? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 그래. 346 00:17:17,690 --> 00:17:18,390 그것은 4 바이트입니다. 347 00:17:18,390 --> 00:17:19,690 그것은 32 비트입니다. 348 00:17:19,690 --> 00:17:22,310 그래서 지금은 다르다 배열이 우리 349 00:17:22,310 --> 00:17:24,020 문자 이전, 배열을 보았다. 350 00:17:24,020 --> 00:17:28,540 문자열의 각 상자는 하나의 바이트했다 문자는 한 바이트이기 때문이다. 351 00:17:28,540 --> 00:17:32,170 그러나 정수의 배열로, 각 상자는 순서로 4 바이트이어야한다 352 00:17:32,170 --> 00:17:34,060 전체 정수에 맞게. 353 00:17:34,060 --> 00:17:37,197 그래서 이것은 무엇의 배열 네 정수는 같을 것이다. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> 그리고 다시 코드. 356 00:17:43,870 --> 00:17:47,460 이제 우리는 실제로 저장할 그 배열에 정수. 357 00:17:47,460 --> 00:17:53,470 그래서 지금은 매우, 매우, 매우이다 어떤 점에서이되는 일반 패턴 358 00:17:53,470 --> 00:17:54,680 근육 기억된다. 359 00:17:54,680 --> 00:17:56,710 그래서 0과 동일 int로. 360 00:17:56,710 --> 00:17:57,940 나는 n보다 적은. 361 00:17:57,940 --> 00:18:01,850 나는 플러스 플러스. 362 00:18:01,850 --> 00:18:05,790 연령대는 난의 getInt 같습니다. 363 00:18:05,790 --> 00:18:15,100 >> 그래서 루프, 형식, 당신은 매우 익숙해합니다. 364 00:18:15,100 --> 00:18:20,010 그래서이 일반적으로 우리가 어떻게 것 거의 모든 배열을 반복. 365 00:18:20,010 --> 00:18:23,690 이제 이런 종류의 통지 처음부터 그 이유를 설명 366 00:18:23,690 --> 00:18:29,870 우리는 루프 INT 갈 위해하지 않았다 나는보다 작거나 10과 동일, 1과 같다. 367 00:18:29,870 --> 00:18:34,200 부터 시작하는 것이되는 이유 제로의 배열과 잘이 일을합니다. 368 00:18:34,200 --> 00:18:36,270 그래서 배열은 인덱스 제로입니다. 369 00:18:36,270 --> 00:18:40,360 이 배열의 길이가 4 인 경우, 지수는 0 ~ 3입니다. 370 00:18:40,360 --> 00:18:42,880 >> 제 1 관통 그래서 루프에 대한이의 반복 371 00:18:42,880 --> 00:18:49,930 우리는 나이를 설정하는거야 의 getInt를 호출 동일 브래킷 0. 372 00:18:49,930 --> 00:18:52,440 그래서 무슨 일이 있었 어떤 키보드로 입력합니다. 373 00:18:52,440 --> 00:18:56,970 두 번째 패스에서, 우리는있어 의 getInt에 age1 동일하게 설정. 374 00:18:56,970 --> 00:18:58,230 셋째 패스, age2. 375 00:18:58,230 --> 00:18:59,880 최종 패스 age3. 376 00:18:59,880 --> 00:19:05,750 루프의 첫 번째 패스에 그렇다면 나는 키보드로 숫자 4를 입력 377 00:19:05,750 --> 00:19:07,740 우리는 여기에 4를 삽입합니다. 378 00:19:07,740 --> 00:19:11,470 내가 입력 한 두 번째 패스에 경우 50, 우리는 여기에 50을 넣어 것입니다. 379 00:19:11,470 --> 00:19:15,180 세 번째 패스에 나는 수도 입력 한 음, 한 음, 380 00:19:15,180 --> 00:19:21,810 다음 마지막으로 내가 0--를 입력 할 경우 지금이 인덱스 세 이었다는 것을 기억한다. 381 00:19:21,810 --> 00:19:25,350 >> 우리 루프 다시 후, 나는입니다 가는 4로 증가한다. 382 00:19:25,350 --> 00:19:27,770 난 더 이상 4 N, 이하 없다. 383 00:19:27,770 --> 00:19:29,840 그리고 우리는 루프의 탈옥. 384 00:19:29,840 --> 00:19:32,578 그래서이 잘못 무엇을 할 것인가? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [들림]? 387 00:19:38,729 --> 00:19:39,604 청중 : [들리지] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> 네. 390 00:19:46,400 --> 00:19:51,550 그래서 배열은 4 개소가 있습니다, 이는 3를 통해 인덱스 0으로 의미한다. 391 00:19:51,550 --> 00:19:55,630 이 경우라면, 내가 것 그래서 어떤 점에서 값 4에 걸릴. 392 00:19:55,630 --> 00:20:00,910 연령대 4 설정한다 어떤이 이상 여기에 발생 393 00:20:00,910 --> 00:20:02,920 내가 무슨 말을했는지에 6을 입력합니다. 394 00:20:02,920 --> 00:20:05,010 즉 6이 설정됩니다. 395 00:20:05,010 --> 00:20:06,560 >> 그러나 우리는 여기에 무엇을 모른다. 396 00:20:06,560 --> 00:20:08,836 이 메모리 아니다 것을 우리는 접근했다. 397 00:20:08,836 --> 00:20:10,710 그래서 당신은 기억한다면 이전 강의, 398 00:20:10,710 --> 00:20:14,350 그는 Zamyla의 값을 인쇄하고, 어떤 점에서 그는이 분할 충돌 399 00:20:14,350 --> 00:20:17,990 잘못. 그래서 당신은 아마 볼 수있을 것입니다 당신만큼 분할 오류 400 00:20:17,990 --> 00:20:20,530 문제 세트의 일부를 구현합니다. 401 00:20:20,530 --> 00:20:24,950 하지만이 방법 중 하나 인 당신은 분할이 발생할 수 있습니다 402 00:20:24,950 --> 00:20:28,540 당신이 액세스 할 시작할 때, 잘못 당신이 안 방법으로 메모리. 403 00:20:28,540 --> 00:20:34,117 그래서 우리는에 접근하지 않았다 이 위치는이 버그입니다. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> 그래서이 좋습니다. 406 00:20:40,190 --> 00:20:45,820 지금은 아직 작은이 이 코드를 사용하여 문제를 해결합니다. 407 00:20:45,820 --> 00:20:50,720 그리고 우리가 걸 기본적이다 여전히 4 명의 학생에 붙어. 408 00:20:50,720 --> 00:20:52,940 지금은 OK, 학생 8을 사용합니다. 409 00:20:52,940 --> 00:20:54,350 그것은 그렇게 큰 거래를하지 않습니다. 410 00:20:54,350 --> 00:20:58,120 나는 변경에 갈 수있는 의견, n은 변경할 수 있습니다. 411 00:20:58,120 --> 00:20:59,760 지금이 여덟 학생들과 함께 작동합니다. 412 00:20:59,760 --> 00:21:02,190 나는이를 컴파일하고 실행하는 경우 이, 그것은 가구 있구만 표시됩니다 413 00:21:02,190 --> 00:21:07,870 그것은 여덟에 대한 정수를 요청합니다 학생들과 그냥 작동합니다. 414 00:21:07,870 --> 00:21:11,850 그러나 필요에 이상적 이하의 프로그램을 매번 다시 컴파일 415 00:21:11,850 --> 00:21:15,960 나는 학생들의 수를 변경하려면 나는에 대한 나이를 입력 할 것인지. 416 00:21:15,960 --> 00:21:22,990 >> 그래서 최종 개선에 우리가 here-- 살펴 보 겠지만이, 우리는있어 417 00:21:22,990 --> 00:21:26,177 사람의 수를 요청하는 것. 418 00:21:26,177 --> 00:21:28,010 여기서 우리는 번호가 객실에있는 사람들의 419 00:21:28,010 --> 00:21:29,880 또는 실내에있는 사람의 나이. 420 00:21:29,880 --> 00:21:33,300 그러나 우리는 수를 요청하는거야 사용자의 방에있는 사람들의. 421 00:21:33,300 --> 00:21:36,171 그래서이 동일한 DO-동안이다 우리가 전에 본 적이 루프. 422 00:21:36,171 --> 00:21:37,920 그것은 동일한의 할-whil​​e 루프 당신 423 00:21:37,920 --> 00:21:40,050 문제 세트에 구현 될 수있다. 424 00:21:40,050 --> 00:21:43,102 그러니 그들이있는 한 1보다 n이 덜 입력, 425 00:21:43,102 --> 00:21:45,310 그래서에있을거야 방에 적어도 한 사람. 426 00:21:45,310 --> 00:21:47,407 만큼 그들이있는 한 1보다 n이 덜 입력, 427 00:21:47,407 --> 00:21:48,990 우리는 다시 물어 유지하는 것입니다. 428 00:21:48,990 --> 00:21:50,906 번호를 입력하세요 방에있는 사람들의. 429 00:21:50,906 --> 00:21:53,550 이제, 우리는 한번 번호가 room--에있는 사람들의 430 00:21:53,550 --> 00:21:58,020 그래서 나는이 것을 입력 할 수 있습니다 이 방 200 명이다. 431 00:21:58,020 --> 00:22:05,480 여기에 아래 우리는 올거야 및 크기 (200)의 배열을 선언. 432 00:22:05,480 --> 00:22:10,220 우리의 배열을 선언하고 충분히 큰 200 세를 개최합니다. 433 00:22:10,220 --> 00:22:15,370 내려오고, 그것은 루프의 당신은 매우 익숙해 질 것이다. 434 00:22:15,370 --> 00:22:19,490 그래서이 배열의 반복, 각 위치에 할당 435 00:22:19,490 --> 00:22:23,020 해당 배열의 정수이고 다음 궁극적으로 우리는 여기있어 436 00:22:23,020 --> 00:22:28,340 다만 반복의 예 점점 그 배열을, 값을 할당하지, 437 00:22:28,340 --> 00:22:30,150 그러나 값에 액세스 할 수 있습니다. 438 00:22:30,150 --> 00:22:33,810 >> 여기에 우리는 볼 우리가 지금부터 올해 말, 439 00:22:33,810 --> 00:22:40,470 사람 %는 내가 세 %가됩니다 첫 번째 %는 내가 1을 더한입니다. 440 00:22:40,470 --> 00:22:43,010 그래서 나는이 인덱스 변수이다. 441 00:22:43,010 --> 00:22:49,420 그리고 두 번째 %의 난을 될 것입니다 세 배열 플러스 (1)에 저장된 값입니다. 442 00:22:49,420 --> 00:22:54,217 그래서이 플러스 1은 우리가있어해서입니다 이 1을 더한 제 말 세 난 플러스 1. 443 00:22:54,217 --> 00:22:57,050 이 더하기 1은 우리가있어해서입니다 지금 사람으로부터 올해 말 444 00:22:57,050 --> 00:22:58,280 이 오래된 것입니다. 445 00:22:58,280 --> 00:23:01,080 >> 왜이 내가 더하기 1은? 446 00:23:01,080 --> 00:23:04,064 왜 우리는 거기에 1을 더한 있나요? 447 00:23:04,064 --> 00:23:04,564 그래. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 네. 450 00:23:07,930 --> 00:23:10,510 그래서 배열은 0 색인 기억한다. 451 00:23:10,510 --> 00:23:14,840 우리는이를 인쇄하는 경우 그래서 누군가는 출력을 읽으려면 452 00:23:14,840 --> 00:23:19,380 다음 아마 그들은 무언가를보고 싶어 사람 한 사람의 수 같은, 453 00:23:19,380 --> 00:23:21,160 20 세 될 것입니다. 454 00:23:21,160 --> 00:23:23,570 사람의 두 번째 15 세 이상이어야합니다. 455 00:23:23,570 --> 00:23:27,420 그들은 오히려 사람을 볼 것 숫자 0 15 세입니다. 456 00:23:27,420 --> 00:23:36,460 >> 그래서이 컴파일 그냥보고 무엇을 그것은 일부 공간을 만들기 그때 엔 보인다. 457 00:23:36,460 --> 00:23:43,560 나이 컴파일합니다. 458 00:23:43,560 --> 00:23:45,080 나이를 실행. 459 00:23:45,080 --> 00:23:46,580 우리는 방에있는 사람 수를 참조하십시오. 460 00:23:46,580 --> 00:23:48,850 그래서이있다 말할 것이다 방에 세 사람. 461 00:23:48,850 --> 00:23:54,000 사람의 번호를 하나의 시대, 의 15, 20, 25을 가정 해 봅시다. 462 00:23:54,000 --> 00:23:59,680 그리고 지금은 년에서 말할 것이다 지금은 16, 21, 26이 될 것입니다. 463 00:23:59,680 --> 00:24:02,900 의이 함께 작동하는지 보자 3 같지 않은 N. 464 00:24:02,900 --> 00:24:07,940 그래서 만약 내가 사람들의 수는 하나 5라고 두 개, 세 개, 두 번, 지금부터 년 465 00:24:07,940 --> 00:24:11,170 그들은, 둘, 셋 수 있습니다 네, 세, 두 살. 466 00:24:11,170 --> 00:24:16,500 그래서 난 그냥 그대로 수 쉽게 N 10,000 수있다. 467 00:24:16,500 --> 00:24:21,270 지금은 아주 여기 앉아있을 것입니다 반면 나이를 입력하지만, 이것은 작동한다. 468 00:24:21,270 --> 00:24:26,000 >> 이제 메모리의 어딘가에 우리 크기 만의 배열을 가지고 469 00:24:26,000 --> 00:24:28,830 그래서 궁극적으로 40,000 바이트가 있으므로 470 00:24:28,830 --> 00:24:31,222 이들 정수의 각 4 바이트. 471 00:24:31,222 --> 00:24:33,180 그래서 배열있다 크기 만 여기서 우리가 할 수있는 472 00:24:33,180 --> 00:24:36,201 그 만명의 나이를 저장합니다. 473 00:24:36,201 --> 00:24:36,700 괜찮아. 474 00:24:36,700 --> 00:24:40,070 이 중 하나에 대한 질문? 475 00:24:40,070 --> 00:24:41,892 그래. 476 00:24:41,892 --> 00:24:43,350 당신이 음수를 주면? 477 00:24:43,350 --> 00:24:44,870 이제 어떻게되는지 보자. 478 00:24:44,870 --> 00:24:49,320 이 특정 case-- 번호 그래서 방, 음 하나에있는 사람들의. 479 00:24:49,320 --> 00:24:52,580 그것은 그 거부, 여기에 우리가 일 때문에 480 00:24:52,580 --> 00:24:57,180 N인지한다는 사실을 처리 할 덜 한 것보다 우리는 다시 물어 것입니다. 481 00:24:57,180 --> 00:25:01,780 당신을 선언하려고하면 음의 크기의 배열, 482 00:25:01,780 --> 00:25:03,950 그것은 일반적으로 작동하지 않습니다. 483 00:25:03,950 --> 00:25:05,570 >> 그럼 해보자. 484 00:25:05,570 --> 00:25:08,000 의 무시하자 어떤 n의 값들이 입력 485 00:25:08,000 --> 00:25:10,571 그냥 INT 연령대에게 부정적인 하나를 말한다. 486 00:25:10,571 --> 00:25:12,410 심지어 컴파일하는 경우 보자. 487 00:25:12,410 --> 00:25:14,100 나는 확실하지 않다. 488 00:25:14,100 --> 00:25:14,920 아니. 489 00:25:14,920 --> 00:25:18,280 그래서 나이가로 선언 음의 크기와 배열입니다. 490 00:25:18,280 --> 00:25:22,540 그래서 선행이 배열 할 수 없습니다 인식 음의 크기 여야하고 그것을 거부합니다. 491 00:25:22,540 --> 00:25:26,840 이제, 우리는 처리하지 않은 경우 이 DO-whil​​e 루프 올바르​​게, 492 00:25:26,840 --> 00:25:28,810 우리가 확인되지 않은 경우 N 미만이면 1-- 493 00:25:28,810 --> 00:25:32,690 의 우리를 바로 봅시다 모든이가 없었어요 494 00:25:32,690 --> 00:25:35,940 대신 우리는 단지 정수를 잡아. 495 00:25:35,940 --> 00:25:40,710 아무리 그 정수가 무엇인지, 우리는 그 크기의 배열을 선언. 496 00:25:40,710 --> 00:25:44,250 >> 그래서 컴파일러는 할 수 없습니다 아마도 지금 불평하고있다. 497 00:25:44,250 --> 00:25:48,780 나는이 항아리 컴파일하는 경우 그래서 불평 할 수 없다, 498 00:25:48,780 --> 00:25:51,480 이 난 것을 알 수 없기 때문에 음수를 입력하는 것, 499 00:25:51,480 --> 00:25:52,550 이는 유효하지 않을 수 있습니다. 500 00:25:52,550 --> 00:25:54,633 모든 것이 내가 수도, 알고 양수를 입력, 501 00:25:54,633 --> 00:25:56,000 이는 완벽하게 유효합니다. 502 00:25:56,000 --> 00:26:01,090 나는 1 마이너스 입력하면 그래서 나는 상상 방에있는 사람들은 오류를 세그멘테이션. 503 00:26:01,090 --> 00:26:06,040 >> 그래서 확인. 504 00:26:06,040 --> 00:26:13,160 그럼이를 그냥 추가 할 수 원래 무엇을 유지. 505 00:26:13,160 --> 00:26:15,640 그래서 나이를 확인합니다. 506 00:26:15,640 --> 00:26:18,120 지금은 시도하려는 경우 부정적인 그렇게하자 age-- 507 00:26:18,120 --> 00:26:19,710 방에 오명가 말한다. 508 00:26:19,710 --> 00:26:23,180 사람의 번호를 하나의 시대 , 사람 세 음 4 509 00:26:23,180 --> 00:26:26,500 제로는, 사람이 확인 three--입니다. 510 00:26:26,500 --> 00:26:29,850 그래서 여기, 년 지금부터, 사람 번호 하나는 3 세 음수가 될 것입니다. 511 00:26:29,850 --> 00:26:32,830 그래서 아마 이해가되지 않습니다. 512 00:26:32,830 --> 00:26:37,220 하지만 그건 그냥보고 있기 때문에 코드를 모두 우리가하고있는 513 00:26:37,220 --> 00:26:40,260 의 getInt를 요청한다. 514 00:26:40,260 --> 00:26:44,110 >> 이제, 우리가 있었다면 GetPositiveInt 기능 515 00:26:44,110 --> 00:26:49,690 또는 우리는 단지 이런 짓을했다 거기 같은 while 루프의 종류, 516 00:26:49,690 --> 00:26:52,340 다음이 완벽하게 정상적으로 작동합니다. 517 00:26:52,340 --> 00:26:54,200 그러나이 특히 경우, 우리는하지 않습니다 518 00:26:54,200 --> 00:26:57,772 음의 값을 처리 할 일이. 519 00:26:57,772 --> 00:26:59,147 배열에 대한 다른 질문? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 그래. 522 00:27:03,250 --> 00:27:09,380 >> 그래서 우리는 지금 배열을 보았다. 523 00:27:09,380 --> 00:27:12,500 그리고 우리는 사용할 필요 해요 명령 줄 인수를위한이. 524 00:27:12,500 --> 00:27:14,680 그래서 문제에 two-- 설정 나는 당신의 많은 것을 알고 525 00:27:14,680 --> 00:27:18,040 여전히 문제 설정 작업을 할 수 있습니다 하나,하지만 문제는 두 가지가오고 설정합니다. 526 00:27:18,040 --> 00:27:22,260 문제는 두 가지를 설정, 당신은 거 야 문자열, 배열을 처리해야, 527 00:27:22,260 --> 00:27:23,950 및 명령 줄 인수. 528 00:27:23,950 --> 00:27:26,270 >> 명령 줄 인수는 그래서 무엇인가? 529 00:27:26,270 --> 00:27:29,570 지금, 당신은 여기를 볼 수 있습니다 정확히 무엇을위한 작은 맛보기 530 00:27:29,570 --> 00:27:30,950 가는 일이 일어나고있다. 531 00:27:30,950 --> 00:27:32,950 우리는 INT 주, INC는 argc 참조 문자열 argv와 브래킷. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 그래서 처음의 해석을 시도하자 무슨 말을하려고. 534 00:27:38,130 --> 00:27:40,800 좋아, 이제. 535 00:27:40,800 --> 00:27:44,637 >> 그래서 명령 줄에서 당신은해야합니다 이러한 명령 중 일부에 익숙해 536 00:27:44,637 --> 00:27:48,580 지금, 당신은 아마 실행했습니다 전에 단말기에 CD. 537 00:27:48,580 --> 00:27:52,100 그래서 우리는 CD를 PSET1을 말한다면, 당신은 그 것을 알고있다 538 00:27:52,100 --> 00:27:55,050 PSET1 디렉토리로 변경합니다. 539 00:27:55,050 --> 00:27:59,120 >> 이제 당신은 적이 없음을 알 전에이 같은 프로그램을 작성합니다. 540 00:27:59,120 --> 00:28:03,120 당신이 작성한 각 프로그램, 당신은, 말하자면, 실행됩니다 마리오 슬래시 점, 541 00:28:03,120 --> 00:28:06,779 점은 욕심 슬래시, 다음을 입력를 묻는 메시지를 표시 할 수 있습니다. 542 00:28:06,779 --> 00:28:08,570 자,하지 무슨이다 디렉토리를 변경한다. 543 00:28:08,570 --> 00:28:12,770 당신이 CD를 실행하면 다음 말을하지 않습니다 당신은 CD에있는 디렉토리에 원하는거야? 544 00:28:12,770 --> 00:28:17,200 대신, 당신은 단지 말, CD의 PSET1 및 그냥 PSET1 디렉토리로 이동합니다. 545 00:28:17,200 --> 00:28:20,430 >> 그래서 마찬가지로 우리는 다른 예를 가지고있다. 546 00:28:20,430 --> 00:28:21,540 안녕하세요합니다. 547 00:28:21,540 --> 00:28:25,760 당신이 만드는 실행하면 다음 말을하지 않습니다 어떤 프로그램이 당신이하고 싶습니다? 548 00:28:25,760 --> 00:28:29,620 당신은 단지에서 말 명령 행 안부를 확인합니다. 549 00:28:29,620 --> 00:28:31,060 >> 이동은 또 다른 예이다. 550 00:28:31,060 --> 00:28:34,840 우리가 이동하는이 하나 하나의 디렉토리를 파일 mario.c. 551 00:28:34,840 --> 00:28:38,060 그래서 지금 우리는이 예제를 알고 우리가 정말 두 개의 인수를 전달하고 있습니다. 552 00:28:38,060 --> 00:28:42,090 첫 번째 인수로 mario.c이있다, 도트 점은 두 번째 인수입니다. 553 00:28:42,090 --> 00:28:46,140 그리고 당신은, 당신을 실행할 때 정말 긴 명령을 참조하십시오 line-- 554 00:28:46,140 --> 00:28:50,580 정말 긴 명령 명령 줄에서 인쇄. 555 00:28:50,580 --> 00:28:53,590 그래서 긴이 command-- 그것의 짧은 부분이다, 556 00:28:53,590 --> 00:28:56,090 하지만 지금 우리는 세 가지가 명령 줄 인수. 557 00:28:56,090 --> 00:28:59,750 도트 대시 제로, 인사 및에서는 hello.c. 558 00:28:59,750 --> 00:29:03,497 >> 그래서 이러한 명령 줄입니다 인수, 인수 559 00:29:03,497 --> 00:29:05,580 당신은에 전달하고 있다는 명령 행 있도록 560 00:29:05,580 --> 00:29:08,680 메시지가 표시 할 필요가 없습니다 당신은 프로그램을 실행할 때. 561 00:29:08,680 --> 00:29:13,090 그것은 좌절 될 때 경우 당신이 연타를 실행 시켰을는 확인 "고 말했다 562 00:29:13,090 --> 00:29:15,630 program--하는 어떤 파일은 컴파일된다? 563 00:29:15,630 --> 00:29:17,010 에서는 hello.c. 564 00:29:17,010 --> 00:29:19,440 무엇 플래그 당신 것 입력 하시겠습니까? 대시 오. 565 00:29:19,440 --> 00:29:21,190 당신은 무엇을하고 싶습니다 파일이 호출 할 수 있습니까? 566 00:29:21,190 --> 00:29:21,690 안녕하세요. 567 00:29:21,690 --> 00:29:25,290 아니, 당신은 연타를 실행 오 안녕하세요에서는 hello.c를 대시. 568 00:29:25,290 --> 00:29:28,820 >> 그래서 다시이 찾고. 569 00:29:28,820 --> 00:29:32,920 지금 argc--는 argc 인수 카운트입니다. 570 00:29:32,920 --> 00:29:36,620 이 명령 줄 수있어 인수는 명​​령 줄에 입력. 571 00:29:36,620 --> 00:29:39,720 글쎄, 기술적으로 argv-- V는 벡터를 의미 572 00:29:39,720 --> 00:29:41,460 이는 기본적으로 배열을 의미한다. 573 00:29:41,460 --> 00:29:42,680 하지만 당신은 그것을 무시할 수 있습니다. 574 00:29:42,680 --> 00:29:47,540 Argv-- 우리는 문자열 변수는 argv가 그래서 문자열 argv와 브래킷. 575 00:29:47,540 --> 00:29:50,150 그래서이의 또 다른 형태이다 당신이 전에 보지 못한 브래킷. 576 00:29:50,150 --> 00:29:52,300 그래서 우리는 본 적이 브래킷 우리가 말한 표기, 577 00:29:52,300 --> 00:29:53,970 같은 문자열들 Zamyla는 같습니다. 578 00:29:53,970 --> 00:29:56,910 S 브래킷 0 문자 Z. 액세스 579 00:29:56,910 --> 00:30:00,720 >> 우리는 또한 브래킷 경우를 본 적이 우리는 INT 세 5 괄호 말했다. 580 00:30:00,720 --> 00:30:03,160 즉, 크기 5의 배열을 선언했다. 581 00:30:03,160 --> 00:30:06,280 그래서 여기의 버전입니다 브래킷은 우리가 전에 보지 못했어요. 582 00:30:06,280 --> 00:30:09,630 문자열 변수는 argv의 그래서 이런 종류의 그 완전히 익숙 할 것이다 583 00:30:09,630 --> 00:30:12,050 그냥 문자열이 될 것이라고. 584 00:30:12,050 --> 00:30:14,520 이제 괄호 표시 것을이 배열입니다. 585 00:30:14,520 --> 00:30:19,920 그래서 문자열 argv와 브래킷 수단 그 변수는 argv는 문자열의 배열입니다. 586 00:30:19,920 --> 00:30:22,540 이제 기술적으로 문자열 문자의 배열입니다. 587 00:30:22,540 --> 00:30:26,400 그래서 지금 배열입니다 문자들의 배열. 588 00:30:26,400 --> 00:30:31,490 그러나 생각하기가 훨씬 쉽다 문자열이처럼 배열. 589 00:30:31,490 --> 00:30:34,900 >> 왜 괄호는 비어있을 수 있습니다? 590 00:30:34,900 --> 00:30:38,170 마찬가지로, 왜 우리는 말할 수 없다 브래킷 5, 브라켓 N? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 그래. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 그래. 595 00:30:44,230 --> 00:30:46,396 우리는 얼마나 많은 모르겠어요 입력이가 될 것입니다. 596 00:30:46,396 --> 00:30:53,560 그래서 우리는 그 소리 예를 보면, 우리는 인사에서는 hello.c O를 대시를 연타 말한다. 597 00:30:53,560 --> 00:30:56,710 특히이 경우,이 일어날 세 개의 명령 줄 인수한다. 598 00:30:56,710 --> 00:31:00,522 그래서 brackets-- 우리는 볼 수 있습니다 두 번째에서 세 가지를하지 않을 것입니다. 599 00:31:00,522 --> 00:31:01,730 그것은 기술적으로 네 것입니다. 600 00:31:01,730 --> 00:31:04,030 그러나 브래킷, 우리는 것 말하자면, 세 가지가 있습니다. 601 00:31:04,030 --> 00:31:08,220 하지만 지금 우리는 이동 보았다 경우 mario.c 점 점, 괄호 602 00:31:08,220 --> 00:31:09,760 우리는 그들에 두를 데려 가고 싶다는 것입니다. 603 00:31:09,760 --> 00:31:12,884 >> 그리고 명령의 많이있다 그 커맨드 라인의 개수가 유동적 604 00:31:12,884 --> 00:31:13,620 인수. 605 00:31:13,620 --> 00:31:17,430 그래서이 버전의 대괄호 표기법을 나타냅니다 606 00:31:17,430 --> 00:31:20,820 변수는 argv는 문자열의 배열 것입니다. 607 00:31:20,820 --> 00:31:24,360 그러나 우리는 얼마나 많은 몰라 문자열은 해당 배열에 있습니다. 608 00:31:24,360 --> 00:31:27,090 어떻게 우리는 어떻게 알 수 있습니까 많은 문자열은 배열에있는? 609 00:31:27,090 --> 00:31:28,870 즉, 전체 포인트는 argc이다. 610 00:31:28,870 --> 00:31:32,300 ARGC는 argv를 얼마나 오랫동안 우리에게 알려줍니다. 611 00:31:32,300 --> 00:31:36,500 >> 그래서 마지막 것은 유지하기 마음은, 그 기술적으로 612 00:31:36,500 --> 00:31:40,820 명령 자체가 하나로 계산 명령 줄 인수. 613 00:31:40,820 --> 00:31:45,330 CD의 PSET1 그래서 두가 명령 줄 인수. 614 00:31:45,330 --> 00:31:50,260 자체 프로그램, CD, 다음 그것의 실제 인자 부분 PSET1. 615 00:31:50,260 --> 00:31:54,490 당신이 지금까지 작성한 모든 프로그램 한 명령 줄 인 공방 점했다 616 00:31:54,490 --> 00:31:55,320 마리오 슬래시. 617 00:31:55,320 --> 00:31:57,350 즉, 단지 명령 줄 인수입니다. 618 00:31:57,350 --> 00:32:00,900 >> 그래서 지금 그 소리보고 오 안녕하세요에서는 hello.c를 대시. 619 00:32:00,900 --> 00:32:01,905 그래서는 argc는 무엇인가? 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 그래서 ARGC은 4입니다. 623 00:32:08,140 --> 00:32:12,140 연타, 그래서 argv와 브래킷 0 연타입니다. 624 00:32:12,140 --> 00:32:15,630 argv와 브래킷 1 대시 0입니다. 625 00:32:15,630 --> 00:32:21,870 argv와 브래킷 2 안녕하세요이며, argv와 브래킷 3에서는 hello.c입니다. 626 00:32:21,870 --> 00:32:26,813 좋아, 그럼이에 대한 질문, 그리고, 우리는거야 일부 프로그램의 예를 보면. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> 그래. 629 00:32:30,480 --> 00:32:36,260 그래서 우리는 hello3.c 살펴 보겠습니다. 630 00:32:36,260 --> 00:32:41,890 그래서이에서 잘 알고 있어야합니다 첫 번째 C 예제 중 하나 631 00:32:41,890 --> 00:32:45,800 우리가 말을 우리는 어디에서 인사했다 세계는, 그러나 지금이 더 일반적이다. 632 00:32:45,800 --> 00:32:52,300 그래서 여기에 우리는 안녕 말 %의 백 슬래시 n 개의 변수는 argv 브래킷 1. 633 00:32:52,300 --> 00:32:57,440 이 시점까지 최대 있도록 Notice--,이다 무엇을 내 템플릿 파일처럼 보였다있다. 634 00:32:57,440 --> 00:33:01,800 나는 INT 주 (무효)가 있고, 그 다음 나는 것 주요 기능에 뭔가. 635 00:33:01,800 --> 00:33:05,100 이제 대신, 한 번 우리는 처리 시작 명령 줄 인수, 636 00:33:05,100 --> 00:33:07,890 우리는을 명시 할 필요가 메인의 다른 형태. 637 00:33:07,890 --> 00:33:11,930 >> 그래서 hello3보고 다시 메인는 것입니다 638 00:33:11,930 --> 00:33:15,990 INT의 ARGC들을 당장 두 개의 인수를 사용하려면 명령 줄 인수의 수, 639 00:33:15,990 --> 00:33:20,970 문자열 괄호는 argv, 실제 문자열은 명령 줄에 입력. 640 00:33:20,970 --> 00:33:26,560 그래서 나는 그것을 바꿀거야 템플릿은 그 사실을 반영합니다. 641 00:33:26,560 --> 00:33:29,060 지금 때마다 쓰기 프로그램, 당신이하지 않으면 642 00:33:29,060 --> 00:33:33,720 명령 줄을 취할 필요 인수 후 바로 INT 주 (무효)를 사용합니다. 643 00:33:33,720 --> 00:33:37,070 하지만 지금은 당신이 작성하는 경우 명령 줄 인수 프로그램, 어떤 644 00:33:37,070 --> 00:33:40,350 당신이 문제에 대한 일을 할거야 지금 실행중인 것을 two-- 설정 645 00:33:40,350 --> 00:33:42,630 수행해야 프로그램 명령 줄 인수, 646 00:33:42,630 --> 00:33:45,250 이 양식의 기본이 필요합니다. 647 00:33:45,250 --> 00:33:51,290 >> 그래서 here--이 큰 사용법은 명령 줄 인수. 648 00:33:51,290 --> 00:33:54,100 그래서 변수는 argv 1 인쇄. 649 00:33:54,100 --> 00:33:59,180 확인 그래서 컴파일하자 이 프로그램을 실행합니다. 650 00:33:59,180 --> 00:34:02,440 hello3합니다. 651 00:34:02,440 --> 00:34:03,570 컴파일합니다. 652 00:34:03,570 --> 00:34:06,870 점은 hello3 슬래시. 653 00:34:06,870 --> 00:34:08,920 그리고 이제, 말을하자 "롭." 654 00:34:08,920 --> 00:34:10,760 안녕하세요 롭. 655 00:34:10,760 --> 00:34:14,940 나는, "안녕하세요 마리아,"안녕하세요 마리아를 말한다면. 656 00:34:14,940 --> 00:34:15,719 마리아 안녕하세요. 657 00:34:15,719 --> 00:34:18,639 한나는 여전히 안녕하세요 "라고 마리아, "나는 아니에요 때문에 658 00:34:18,639 --> 00:34:21,340 우리는 argv 2 아무것도. 659 00:34:21,340 --> 00:34:22,590 ARGV 2는 지금 "한나."것 660 00:34:22,590 --> 00:34:25,030 ARGC 3이 될 것이다. 661 00:34:25,030 --> 00:34:27,735 내가 이런 짓을하면? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 그래서 안녕하세요줍니다. 664 00:34:34,679 --> 00:34:38,760 >> 그는 잠시 사실에 감동 즉, 기술적하여 GetString 665 00:34:38,760 --> 00:34:42,429 null을 반환 할 수 있습니다, 그러나 우리는를 얻을 수 있습니다 더 무엇을 널 (null)로 많은 사실입니다. 666 00:34:42,429 --> 00:34:47,449 그러나의 문제로 가져 더 일반적으로 나쁘다는 사실. 667 00:34:47,449 --> 00:34:50,179 우리는 경우 뭔가 잘못했다 그것은 "안녕하세요줍니다."인쇄하는 것 668 00:34:50,179 --> 00:34:52,179 그리고 그 이유는 우리는했다 is-- 아니라 뭔가 잘못, 669 00:34:52,179 --> 00:34:56,179 나는 점 슬래시 hello3를 실행할 때, ARGC는 1. 670 00:34:56,179 --> 00:34:59,680 그래서 변수는 argv의 길이가 1이었다 의미한다. 671 00:34:59,680 --> 00:35:05,110 어레이의 길이가 1 인 경우 유일하게 유효한 색인은 0이다. 672 00:35:05,110 --> 00:35:08,550 그리고 여기에 1 밖에 argv를 이 배열의 범위. 673 00:35:08,550 --> 00:35:13,410 내가 시도 할 때 이전과 유사했다 어레이의 외측 단부 (6)를 저장한다. 674 00:35:13,410 --> 00:35:18,100 그래서 내가 뭔가에 액세스하려고 해요 변수는 argv 카운트의 외부, 675 00:35:18,100 --> 00:35:21,340 우리는 널 있어요. 676 00:35:21,340 --> 00:35:24,360 >> 너무 더 나은 버전 이, 개선, 677 00:35:24,360 --> 00:35:27,010 명시 적으로는 argc를 확인하고 있습니다. 678 00:35:27,010 --> 00:35:33,580 ARGC 2에 해당한다면, 그것은 우리가 실행 의미 도트 슬래시 hello3 롭 같은. 679 00:35:33,580 --> 00:35:36,840 그리고 "안녕하세요 롭."인쇄합니다 680 00:35:36,840 --> 00:35:39,850 ARGC이 동일하지 않을 경우 2, 그것은 단지거야 681 00:35:39,850 --> 00:35:42,560 당신이 넣어 어떤 무시 명령 줄 인수에 682 00:35:42,560 --> 00:35:43,960 명령 줄 인수로. 683 00:35:43,960 --> 00:35:47,168 당신이 전혀 넣지 않은 경우 또는,이다 그냥 무시하고 그냥 말을하려고, 684 00:35:47,168 --> 00:35:47,960 "당신을 안녕하세요." 685 00:35:47,960 --> 00:35:51,490 >> 그래서이 컴파일. 686 00:35:51,490 --> 00:35:54,500 hello4합니다. 687 00:35:54,500 --> 00:35:56,790 그리고 hello4를 실행. 688 00:35:56,790 --> 00:36:00,010 그것은이 방법으로 실행, 무엇을 인쇄해야 하는가? 689 00:36:00,010 --> 00:36:01,330 "여러분 안녕하세요." 690 00:36:01,330 --> 00:36:02,810 여러분 안녕하세요. 691 00:36:02,810 --> 00:36:05,870 무엇 hello4 롭은 어떻습니까? 692 00:36:05,870 --> 00:36:06,950 "안녕하세요 롭." 693 00:36:06,950 --> 00:36:10,580 그리고 마지막으로, 안녕하세요 롭 마리아 "안녕하세요"다시 그냥 694 00:36:10,580 --> 00:36:13,677 당신이 정말로 입력하지 않았기 때문에 이 예상 뭔가. 695 00:36:13,677 --> 00:36:15,510 당신은 더 이름을 입력 이 처리 할 수​​있는 것보다, 696 00:36:15,510 --> 00:36:19,500 그래서 그냥이 기본값 안녕하세요 당신의 행동. 697 00:36:19,500 --> 00:36:23,040 이 질문에 그래서? 698 00:36:23,040 --> 00:36:26,290 또는 명령 줄 인수? 699 00:36:26,290 --> 00:36:28,690 >> 좋아, 그럼 한 번 봐 복용 사용의 몇 가지 더 예 700 00:36:28,690 --> 00:36:34,230 명령 줄은 처음 arguments-- 우리는 대시 1 점 C를 argv를했다. 701 00:36:34,230 --> 00:36:38,510 그래서 코멘트 멀리 줄 것을 이 프로그램은 일을해야한다. 702 00:36:38,510 --> 00:36:42,460 그러나, 루프이들을 당장 알 이것은 정확한 패턴과 일치 703 00:36:42,460 --> 00:36:43,390 내가 전에 말을했다. 704 00:36:43,390 --> 00:36:46,240 우리는 될 일이 N 대신 ARGC를 사용하여. 705 00:36:46,240 --> 00:36:48,880 지금 ARGC 정말 N이다. 706 00:36:48,880 --> 00:36:51,260 그것은 argv 배열의 길이입니다. 707 00:36:51,260 --> 00:36:59,600 그래서 argv를 반복된다 배열의 printf - 보내고 각 변수는 argv 값을. 708 00:36:59,600 --> 00:37:04,730 >> 나는이을한다면. 709 00:37:04,730 --> 00:37:08,232 변수는 argv 1을 확인합니다. 710 00:37:08,232 --> 00:37:09,940 그것은 컴파일합니다. 711 00:37:09,940 --> 00:37:11,620 점은 변수는 argv 1을 슬래시. 712 00:37:11,620 --> 00:37:15,530 그냥이 실행을 인쇄 슬래시는 argv 1 점 713 00:37:15,530 --> 00:37:18,500 그 유일한 명령 줄 이후 프로그램 이름을 인 공방. 714 00:37:18,500 --> 00:37:22,080 항상 least--에있을 것입니다 는 argc는 1보다 작을 수 없습니다 715 00:37:22,080 --> 00:37:25,910 이후이 항상 것 이상 실행 프로그램의 이름. 716 00:37:25,910 --> 00:37:32,040 그래서 1 롭 1 ARGV 인쇄됩니다 argv를 다음 새 줄에 "롭." 717 00:37:32,040 --> 00:37:36,350 >> 첫 번째 반복에 따라서 이 루프, 나는 0입니다. 718 00:37:36,350 --> 00:37:39,090 ARGV 0는 프로그램 명이다. 719 00:37:39,090 --> 00:37:40,010 점은 변수는 argv 1을 슬래시. 720 00:37:40,010 --> 00:37:43,770 그리고 1 내 첫 번째 argv를 롭입니다 명령 줄 인수. 721 00:37:43,770 --> 00:37:45,920 이 시점에서, 우리는 argc의 동일하다. 722 00:37:45,920 --> 00:37:48,210 우리는 루프에서 벗어나 우리는 완료. 723 00:37:48,210 --> 00:37:53,940 그래서이 임의의에 대해 작동합니다 명령 줄 인수의 수입니다. 724 00:37:53,940 --> 00:37:58,550 주의는 argv를 0, 변수는 argv를 인쇄 1, 변수는 argv 2, argv를 3, 변수는 argv 4. 725 00:37:58,550 --> 00:38:00,150 그리고 더 argv를 5도 없다. 726 00:38:00,150 --> 00:38:01,460 ARGC 5와 같다. 727 00:38:01,460 --> 00:38:06,960 그래서 5와 동일한에서 argc--에서, 우리는 루프의 탈옥. 728 00:38:06,960 --> 00:38:07,950 그래. 729 00:38:07,950 --> 00:38:11,315 우리는 전에 그에 대한 질문 그래서 더 복잡한 예를 살펴? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> 그래서 2 argv를. 732 00:38:16,860 --> 00:38:17,830 괜찮아. 733 00:38:17,830 --> 00:38:20,610 그래서 우리는 여전히 인쇄하는 명령 줄 인수. 734 00:38:20,610 --> 00:38:23,170 하지만 지금 우리가 주목 for 루프 중첩. 735 00:38:23,170 --> 00:38:24,670 그래서이 일을합니까? 736 00:38:24,670 --> 00:38:28,430 그래서 첫 번째 루프는하고있다 정확히 무엇을 이전했다. 737 00:38:28,430 --> 00:38:30,950 우리는 여전히 이상 반복하고 각 명령 줄 인수, 738 00:38:30,950 --> 00:38:34,260 하지만 지금이 두 번째 loop-- 우리는했습니다 또한 전에 이런 일을 본. 739 00:38:34,260 --> 00:38:38,600 그는 이상 반복 할 때 Zamyla는 Z-A-M-Y-L-을 인쇄. 740 00:38:38,600 --> 00:38:44,816 그래서 INT j에 대한이 두 번째 루프는 동일 0, N argv와 브래킷 난의 나 strlen 같다. 741 00:38:44,816 --> 00:38:49,170 >> 그래서 처음에 대해 생각해 봅시다 짓이야의 통해 살펴 보겠습니다. 742 00:38:49,170 --> 00:38:53,560 의 어떤 컴퓨터가 있다고 생각하자 그냥 점으로 나는이 프로그램을 실행 한 경우 수행 743 00:38:53,560 --> 00:38:56,030 argv를 대시 2 슬래시. 744 00:38:56,030 --> 00:39:03,590 그래서 만약 내가 다음,이 코드를 실행 ARGC 1과 동일 될 것입니다. 745 00:39:03,590 --> 00:39:07,050 그리고 문자열은 거기 argv-- 변수는 argv에서 하나의 인덱스가 될 것, 746 00:39:07,050 --> 00:39:12,370 그리고 그 점에 동일한 될 것 argv를 슬래시 2-- 프로그램 이름을. 747 00:39:12,370 --> 00:39:19,170 >> 좋아, 그럼 지금은보다 내가 더 적은, 0과 동일 1, 난 플러스 플러스 INT의 j는 0에 해당위한, 748 00:39:19,170 --> 00:39:23,880 N에서, 그래서 변수는 argv 브래킷 0의 나 strlen 같다 이 루프의 첫 번째 반복. 변수는 argv 749 00:39:23,880 --> 00:39:27,250 브래킷 0 점 슬래시는 argv 2입니다. 750 00:39:27,250 --> 00:39:29,320 그래서 문자열의 길이는 무엇인가? 751 00:39:29,320 --> 00:39:32,480 음, A-R-G-V에게 대시 2 슬래시 점. 752 00:39:32,480 --> 00:39:35,020 그 나 strlen 그래서 것은 8 할 것이다. 753 00:39:35,020 --> 00:39:37,500 그래서 j는 0과 동일, n은 8과 같다. 754 00:39:37,500 --> 00:39:39,530 긴 J 8, j 개의 ++ 미만으로. 755 00:39:39,530 --> 00:39:44,080 그리고 그와 함께 우리가 될거야 하나의 문자를 인쇄하는 756 00:39:44,080 --> 00:39:47,350 나는 J를 괄호는 argv 브라켓입니다. 757 00:39:47,350 --> 00:39:49,826 >> 그래서 나만은 0이다. 758 00:39:49,826 --> 00:39:51,700 우리는 여전히 하나가 명령 줄 인수. 759 00:39:51,700 --> 00:39:53,890 그 첫 번째 반복에서 루프, 우리는있어 760 00:39:53,890 --> 00:39:56,950 인쇄 될 것 argv와 브래킷 0 브래킷 0. 761 00:39:56,950 --> 00:39:58,325 그리고 j는 증가 할 것이다. 762 00:39:58,325 --> 00:40:01,650 그리고 우리는 인쇄에가는거야 argv와 브래킷 0 브래킷 1. 763 00:40:01,650 --> 00:40:04,150 그리고 브래킷 0 브래킷 2는 argv. 764 00:40:04,150 --> 00:40:09,030 >> 그래서 이것은 우리의 첫 만남이다 다차원 배열. 765 00:40:09,030 --> 00:40:12,770 내가 말한 것을 이전의 기억 그 변수는 argv는 기술적으로 766 00:40:12,770 --> 00:40:15,950 문자의 배열의 배열. 767 00:40:15,950 --> 00:40:24,360 그래서 여기 뭔가처럼 말했다 경우 문자열들, argv와 브래킷 나는 동일 768 00:40:24,360 --> 00:40:29,590 다음 나는 S 말했다 브래킷 J,이 같은 일을 달성 할 것이다. 769 00:40:29,590 --> 00:40:31,960 지금, 당신은 이전의에게 브래킷 J 봤어요. 770 00:40:31,960 --> 00:40:36,680 그건 그냥 j 번째 액세스 것 이 캐릭터 라인의 문자. 771 00:40:36,680 --> 00:40:48,010 이와 그래서, 우리는 점점 i 번째 변수는 argv의 j 번째 문자. 772 00:40:48,010 --> 00:40:51,450 >> 그래서이 궁극적으로 출력해야합니까? 773 00:40:51,450 --> 00:40:53,210 변수는 argv 2를 확인합니다. 774 00:40:53,210 --> 00:40:54,730 그것은 컴파일합니다. 775 00:40:54,730 --> 00:40:56,340 점은 변수는 argv 2 슬래시. 776 00:40:56,340 --> 00:41:03,790 "롭 마리아 한나" 우리에게 약간의 공간을 제공합니다. 777 00:41:03,790 --> 00:41:07,050 그래서 우리는이 출력 것을 볼 자신의 라인과 슬래시에 점 778 00:41:07,050 --> 00:41:08,920 자신의 라인에 자신의 라인에. 779 00:41:08,920 --> 00:41:11,260 이 밖에 각 인쇄거야 개별 문자 780 00:41:11,260 --> 00:41:12,950 각 명령 줄 인수의. 781 00:41:12,950 --> 00:41:15,960 그리고 그들 사이에, 이 때문에 새로운 라인의 782 00:41:15,960 --> 00:41:19,380 우리는에서, 여기에 아래로 인쇄하는 그들 사이에 새로운 라인을 인쇄 할 수 있습니다. 783 00:41:19,380 --> 00:41:24,540 >> 그래서이 유사하다 이전 argv를 대시 1, 784 00:41:24,540 --> 00:41:26,459 각 인쇄하는 명령 줄 인수, 785 00:41:26,459 --> 00:41:28,500 하지만 지금 우리는 인쇄하는 명령 줄 인수 786 00:41:28,500 --> 00:41:31,950 다음 각 통해 반복 각 명령 줄 인수의 문자 787 00:41:31,950 --> 00:41:35,400 이 출력을 얻을 수 있습니다. 788 00:41:35,400 --> 00:41:36,870 그래? 789 00:41:36,870 --> 00:41:40,570 이 질문에 그래서? 790 00:41:40,570 --> 00:41:45,130 >> 주의 할 점은 것입니다 명령 줄 arguments-- 791 00:41:45,130 --> 00:41:49,990 그래서 그들은 같은 공백으로 구분됩니다 당신은 자연스럽게 그들을 것으로 예상된다. 792 00:41:49,990 --> 00:41:53,050 그래서 문자열에 공백이있을 수 있습니다. 793 00:41:53,050 --> 00:41:57,380 그것은 매우 중요하지,하지만 난 경우 세 번째 명령 줄 인수를 원했다 794 00:41:57,380 --> 00:42:01,226 그때, 거기에 공간을 가지고 이 같은 것을 말할 수 있습니다. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 그래? 797 00:42:05,550 --> 00:42:12,190 그래서 지금은 여전히​​ 세 가지가 있습니다 명령 줄 arguments-- 잘 4. 798 00:42:12,190 --> 00:42:17,620 도트는 argv를 대시 2 슬래시, 롭, 마리아, 그리고 한나 블룸버그. 799 00:42:17,620 --> 00:42:18,320 그래. 800 00:42:18,320 --> 00:42:19,310 이에 대한 질문? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> 특별한 것은 없다 공백 문자에 대한. 803 00:42:24,894 --> 00:42:27,810 그것은 그냥 될 일이 명령 줄은 공백 문자를 처리 804 00:42:27,810 --> 00:42:29,226 방법으로 각 인수를 구분합니다. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 괜찮아. 807 00:42:33,000 --> 00:42:39,950 그럼 문제 세트 당신이 될거야 two-- 808 00:42:39,950 --> 00:42:43,240 비밀 키 암호를 찾고 있습니다. 809 00:42:43,240 --> 00:42:47,700 그 예에 따라서, 유사 우리는 크리스마스 스토리에서 보았다 810 00:42:47,700 --> 00:42:52,840 당신은 몇 가지를 구현 될거야 메시지를 소정의 알고리즘, 811 00:42:52,840 --> 00:42:55,560 당신은 수있을거야 그 메시지를 암호화 812 00:42:55,560 --> 00:42:58,730 그 비밀과 그 사람 만 키, 그 디코더 링, 813 00:42:58,730 --> 00:43:01,090 암호를 해독 할 수 있어야한다. 814 00:43:01,090 --> 00:43:04,839 >> 그래서 표준 버전입니다. 815 00:43:04,839 --> 00:43:07,130 당신은 구현 될거야 두 개의 서로 다른 버전. 816 00:43:07,130 --> 00:43:09,620 당신은 살펴 일어날 경우 해커가 지금 edition--에서, 817 00:43:09,620 --> 00:43:12,600 우리는 줄거야 당신이 같은 문자열, 818 00:43:12,600 --> 00:43:15,240 이는 암호화 된 암호를 나타냅니다. 819 00:43:15,240 --> 00:43:19,990 그래서 당신의 목표는 파악하는 것입니다 해독 된 암호는 무엇인지. 820 00:43:19,990 --> 00:43:26,950 지금이 실제로 어떻게 암호입니다 많은 컴퓨터에 저장되며, 821 00:43:26,950 --> 00:43:31,290 그리고 그것은 단지이 저장 문자의 임의의 문자열. 822 00:43:31,290 --> 00:43:34,440 당신은 그것을 이용하는 방법을 알아 내야합니다 문자의 임의의 문자열에서 823 00:43:34,440 --> 00:43:36,140 원래 암호가 무엇인지에. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> 그리고 마지막으로, 후이 문제 세트, 당신은해야 826 00:43:43,290 --> 00:43:46,100 이 무슨 뜻인지 이해할 수. 827 00:43:46,100 --> 00:43:51,650 그래서 당신은 암호를 해독하는 방법을 배우게됩니다 임의의 문자열의 종류. 828 00:43:51,650 --> 00:43:56,390 마찬가지로 주에서 기억한다면 0, 당신은이 URL을 본 적이 있습니다. 829 00:43:56,390 --> 00:44:00,210 그리고 당신은 할 수 있어야 결국이 암호를 해독. 830 00:44:00,210 --> 00:44:04,810 당신은 행복하지 않을 수 있습니다 때를 암호를 해독하고 링크를 클릭합니다. 831 00:44:04,810 --> 00:44:05,700 괜찮아. 832 00:44:05,700 --> 00:44:06,591 오늘은 그것을이다. 833 00:44:06,591 --> 00:44:12,095 그래서 다음 주에 당신을보고! 834 00:44:12,095 --> 00:44:18,315 >> [전자 음악 연주] 835 00:44:18,315 --> 00:47:15,619