1 00:00:00,000 --> 00:00:11,320 2 00:00:11,320 --> 00:00:13,260 >> DAVID 마란 : 안녕하세요, 및 CS50에 다시 오신 것을 환영합니다. 3 00:00:13,260 --> 00:00:14,860 그래서이 주에서 4의 끝입니다. 4 00:00:14,860 --> 00:00:16,680 먼저 한 발표. 5 00:00:16,680 --> 00:00:19,600 는 소위 다섯 번째 월요일 이렇게 이 오는 월요일오고. 6 00:00:19,600 --> 00:00:22,800 이에서 변경할 수있는 기회입니다 편지 학년 / UNSAT 토, 또는에서 7 00:00:22,800 --> 00:00:24,130 문자 등급 / UNSAT을 앉아 있었다. 8 00:00:24,130 --> 00:00:27,130 귀찮게, 그 프로세스를 필요로한다 당신이 작성해야 서명이 있기 때문에 9 00:00:27,130 --> 00:00:28,770 그 분홍색 추가 / 드롭 형태의 하나 중. 10 00:00:28,770 --> 00:00:31,680 >> 때문에 기술적으로, SAT / UNSAT 버전 및 문자 등급 버전 11 00:00:31,680 --> 00:00:33,320 별개의 제품 번호가있다. 12 00:00:33,320 --> 00:00:34,240 하지만 큰 문제. 13 00:00:34,240 --> 00:00:36,620 그냥 나에게 와서 나 강도 짓 또는 어느 시점에서 로렌. 14 00:00:36,620 --> 00:00:39,550 당신은 종류가없는 경우 나 이메일을 보내 서류의 당신이 오늘 필요가 있고, 우리 15 00:00:39,550 --> 00:00:43,410 당신이 취할 수 있도록해야합니다 월요일 그 전에 처리. 16 00:00:43,410 --> 00:00:45,780 >> 좋아, 그래서 오늘 - 17 00:00:45,780 --> 00:00:47,630 실제로, 에코의 비트가있다. 18 00:00:47,630 --> 00:00:51,070 우리는 음색 저를 조금 할 수 있습니까? 19 00:00:51,070 --> 00:00:51,730 확인을 클릭합니다. 20 00:00:51,730 --> 00:00:54,850 그래서 오늘, 우리는 주제를 소개합니다 포인터로 알려져 있습니다. 21 00:00:54,850 --> 00:00:57,770 그리고이 중 하나입니다 인정합니다 우리가 경향이 더 복잡한 주제 22 00:00:57,770 --> 00:01:00,960 이 클래스에 포함, 또는 실제로 어떤 C.를 사용하는 입문 과정 23 00:01:00,960 --> 00:01:05,510 >> 그러나 특히, 그것은 내 말을 당신의 마음은 조금 더 구부러진 느낌이 든다면 24 00:01:05,510 --> 00:01:07,100 오늘 주에 와서. 25 00:01:07,100 --> 00:01:10,340 그것은 당신이 점점 대표 아니다 이 전혀 나쁜 그것은 단지 그 의미 26 00:01:10,340 --> 00:01:13,360 그것은 특히 복잡한 항목의 내가 약속하는, 몇 주 27 00:01:13,360 --> 00:01:17,610 따라서, 모든 게 너무 눈에 띄게 보일 것입니다 생각해 보면 간단합니다. 28 00:01:17,610 --> 00:01:18,720 >> 나는 아직도이 날을 기억한다. 29 00:01:18,720 --> 00:01:22,190 나는 엘리엇 식당 홀에 앉아 있었다 내 TF Nishat 메타 옆에 앉아, 30 00:01:22,190 --> 00:01:24,070 엘리엇 집의 거주자는 사람이었다. 31 00:01:24,070 --> 00:01:26,340 그리고 어떤 이유로,이 주제는 단지 클릭합니다. 32 00:01:26,340 --> 00:01:29,430 이는 너무 고생하는 말을하는 것입니다 시간의 일부 금액에 대한 그것은,하지만 함께 33 00:01:29,430 --> 00:01:33,610 그러한을 피할 수 있도록 최선을 다할 것입니다 주제와 궁극적으로 투쟁 34 00:01:33,610 --> 00:01:34,580 매우 강력합니다. 35 00:01:34,580 --> 00:01:37,350 >> 사실, 주제 중 하나는 우리가 논의 할 것이다 올 주에있는은 36 00:01:37,350 --> 00:01:41,130 의 안전, 그리고 어떻게 당신이 실제로 수 방법으로 컴퓨터를 이용 37 00:01:41,130 --> 00:01:42,320 그 의도되지 않았습니다. 38 00:01:42,320 --> 00:01:45,850 그리고 그 착취는 전형적으로 버그, 실수의 결과가 우리 39 00:01:45,850 --> 00:01:49,740 사람들은 몇 가지를 이해하지 의하여 만든다 기본 구현 40 00:01:49,740 --> 00:01:52,250 그 세부 사항을 통해 프로그램이 만들어집니다. 41 00:01:52,250 --> 00:01:55,410 >> 지금이 있도록하면 모든 사용자에게보다 것 친절한, 나는 10 플레이 줄 알았는데 42 00:01:55,410 --> 00:01:59,680 작은 클레이 메이션의 두 번째 미리보기 주어졌다 비키라는 그림 43 00:01:59,680 --> 00:02:03,020 스탠포드에서 우리의 친구에 의해 삶, 교수 닉 Parlante. 44 00:02:03,020 --> 00:02:06,753 그래서 내가 당신에게 이것을 줄 수 여기 빙키의 맛보기. 45 00:02:06,753 --> 00:02:09,520 >> [동영상 재생] 46 00:02:09,520 --> 00:02:10,380 >> - 안녕, 빙키. 47 00:02:10,380 --> 00:02:11,050 일어나. 48 00:02:11,050 --> 00:02:13,610 그것은 포인터 재미를위한 시간이다. 49 00:02:13,610 --> 00:02:14,741 >> - 뭐라 구요? 50 00:02:14,741 --> 00:02:16,440 포인터에 대해 알아? 51 00:02:16,440 --> 00:02:17,928 아, 좋아요 ~. 52 00:02:17,928 --> 00:02:18,920 >> [END 동영상 재생] 53 00:02:18,920 --> 00:02:20,670 >> DAVID 마란 : 스탠포드입니다 컴퓨터 과학. 54 00:02:20,670 --> 00:02:23,194 그래서 더 그에 와서. 55 00:02:23,194 --> 00:02:24,930 >> [박수] 56 00:02:24,930 --> 00:02:26,660 >> DAVID 마란 : 죄송합니다, 닉. 57 00:02:26,660 --> 00:02:30,680 >> 그래서 우리가 종료 된 마지막 시간을 기억 이 정말 흥분 클리프 행어 58 00:02:30,680 --> 00:02:32,960 그것에 의하여이 기능을 그냥 작동하지 않았다. 59 00:02:32,960 --> 00:02:34,960 적어도 직관적으로, 그것은 느낌 그것은 작동해야처럼. 60 00:02:34,960 --> 00:02:37,600 단순히 값을 교환 두 정수의. 61 00:02:37,600 --> 00:02:40,915 하지만 기억이 우리를 인쇄 할 때 주, 하나의 원래 값 62 00:02:40,915 --> 00:02:44,210 둘째, 그들은 여전히​​ 하나 있었고, 두 가지가 아닌 두 가지 하나. 63 00:02:44,210 --> 00:02:46,070 >> 그래서 나는 실제로 전환 할 이상 장비에. 64 00:02:46,070 --> 00:02:50,180 나는의 골격 코드의 비트를 썼습니다 내가 주장하는 곳, 여기에 진행하는 X 65 00:02:50,180 --> 00:02:52,500 1이되고, Y는 2가됩니다. 66 00:02:52,500 --> 00:02:54,810 그런 다음 자신의 두 출력 인쇄 F와 값. 67 00:02:54,810 --> 00:02:57,540 >> 그때 나는 여기까지 주장하는 우리는 그들을 교환하는 것입니다. 68 00:02:57,540 --> 00:03:00,800 나는 우리에게 여기 빈 자리를 떠났다 잠시 오늘에 입력합니다. 69 00:03:00,800 --> 00:03:03,380 그럼, 주장거야 그 두 변수가 교환되었다. 70 00:03:03,380 --> 00:03:04,770 그럼 인쇄 할거야 다시 밖으로. 71 00:03:04,770 --> 00:03:07,090 그리고 바라건대, 나는 2 일을 볼 수 있습니다. 72 00:03:07,090 --> 00:03:07,380 2, 1. 73 00:03:07,380 --> 00:03:09,830 초 간단 그건 지금의 목표. 74 00:03:09,830 --> 00:03:12,430 >> 그래서 우리는 스와핑에 대해 어떻게 가야합니까 두 변수? 75 00:03:12,430 --> 00:03:17,220 여기 제안 잘 경우 이들 컵 컴퓨터 메모리를 나타낼 수 있습니다. 76 00:03:17,220 --> 00:03:19,070 이것은이, 몇 물린입니다 또 다른 몇 바이트이다. 77 00:03:19,070 --> 00:03:23,260 우리는 자원 봉사자과 최대에 올 수 있었다 익숙한 경우에, 저희에게 몇 가지 음료를 혼합? 78 00:03:23,260 --> 00:03:23,920 올라 와요. 79 00:03:23,920 --> 00:03:24,815 당신의 이름은 무엇입니까? 80 00:03:24,815 --> 00:03:25,260 >> JESS : 제스. 81 00:03:25,260 --> 00:03:25,690 >> DAVID 마란 : 제스? 82 00:03:25,690 --> 00:03:26,540 최대에 제스되어 있습니다. 83 00:03:26,540 --> 00:03:29,180 당신이 괜찮다면, 우리는 넣어 가지고 당신에 구글은 유리 그래서 우리는 할 수 있습니다 84 00:03:29,180 --> 00:03:30,430 이 불멸. 85 00:03:30,430 --> 00:03:32,800 86 00:03:32,800 --> 00:03:34,670 OK, 유리. 87 00:03:34,670 --> 00:03:37,250 동영상을 기록합니다. 88 00:03:37,250 --> 00:03:43,103 그리고 OK, 우리는에 딱 여기 제스로 이동합니다. 89 00:03:43,103 --> 00:03:43,810 좋아. 90 00:03:43,810 --> 00:03:45,120 만나서 반가워요. 91 00:03:45,120 --> 00:03:47,720 >> 그래서 내가 좋아하는 것 당신은 무엇을 여기에서 - 아주 빨리, 당신은 수 있다면 - 92 00:03:47,720 --> 00:03:51,040 다만 저희에게 오렌지의 절반 유리를 쏟아 주스와 우유의 절반 유리 93 00:03:51,040 --> 00:03:55,710 효율적으로 숫자 1을 나타내는 다른 컵에 한 컵과 2인치 94 00:03:55,710 --> 00:04:01,380 95 00:04:01,380 --> 00:04:02,630 >> 이 좋은 영상이 될 것입니다. 96 00:04:02,630 --> 00:04:04,910 97 00:04:04,910 --> 00:04:05,860 >> JESS : 죄송합니다. 98 00:04:05,860 --> 00:04:06,330 >> DAVID 마란 : 아니, 아니. 99 00:04:06,330 --> 00:04:08,703 괜찮아요. 100 00:04:08,703 --> 00:04:10,120 좋은. 101 00:04:10,120 --> 00:04:12,950 좋아, 그래서 우리는 4 바이트가 오렌지 주스의 가치가있다. 102 00:04:12,950 --> 00:04:14,460 우리는 그것을 값을 1이라고합니다. 103 00:04:14,460 --> 00:04:16,579 지금은 우유의 가치가 다른 4 바이트. 104 00:04:16,579 --> 00:04:18,519 이 두 가치를 호출합니다. 105 00:04:18,519 --> 00:04:20,440 각각 x와 y 그래서. 106 00:04:20,440 --> 00:04:23,450 >> 좋아, 이제 손으로 작업하는 경우 - 모두의 앞에 당신을 위해, 제스, 107 00:04:23,450 --> 00:04:24,270 귀하의 급우 - 108 00:04:24,270 --> 00:04:28,510 x와 같은 Y의 값을 교환하는 것입니다 우리의 오렌지 주스를 원하는 109 00:04:28,510 --> 00:04:32,070 다른 컵이 컵에 우유 방법 당신 수도 - 당신은 실제로하기 전에 110 00:04:32,070 --> 00:04:34,020 그것은 -이 일을 대한 갈? 111 00:04:34,020 --> 00:04:35,220 >> OK, 의사 결정을 현명. 112 00:04:35,220 --> 00:04:36,340 그래서 당신은 좀 더 많은 메모리를 필요로합니다. 113 00:04:36,340 --> 00:04:38,190 그러니 임시 할당하자 컵, 만약에 당신이. 114 00:04:38,190 --> 00:04:40,540 이제 x와 y를 교환 진행합니다. 115 00:04:40,540 --> 00:04:52,950 116 00:04:52,950 --> 00:04:53,530 >> 우수. 117 00:04:53,530 --> 00:04:54,420 그래서 아주 잘 했어. 118 00:04:54,420 --> 00:04:55,670 너무 많은 제스 감사합니다. 119 00:04:55,670 --> 00:04:59,520 120 00:04:59,520 --> 00:05:00,020 여기 있어요. 121 00:05:00,020 --> 00:05:01,950 작은 기념품. 122 00:05:01,950 --> 00:05:04,350 >> 좋아, 그럼 분명히 매우 간단한 아이디어. 123 00:05:04,350 --> 00:05:07,500 우리가 조금 필요 완전히 직관적 인 더 많은 저장 공간 -이 양식, 124 00:05:07,500 --> 00:05:09,750 컵 - 우리가 실제로 원하는 경우 이 두 변수를 교환합니다. 125 00:05:09,750 --> 00:05:11,110 그럼 정확히 그렇게 할 수 있습니다. 126 00:05:11,110 --> 00:05:14,330 여기까지 난 난 주장 곳 사이 일부 교환 일을 할 것, 나는거야 127 00:05:14,330 --> 00:05:15,720 가서 온도를 선언합니다. 128 00:05:15,720 --> 00:05:17,980 그리고 X, 말에이 동일하게 설정됩니다. 129 00:05:17,980 --> 00:05:21,110 >> 그때의 값을 변경하는거야 다만 제스 같은 x는 공급했다 130 00:05:21,110 --> 00:05:23,200 우유와 오렌지 주스 Y와 같아야합니다. 131 00:05:23,200 --> 00:05:27,460 그리고 같 y를 변경하는거야 지금 우리는 것 아니합니다 때문에 X, 132 00:05:27,460 --> 00:05:29,530 원에 갇혀 아니라 임시 직원. 133 00:05:29,530 --> 00:05:33,170 어디에서 일시적으로 I - 나 어디 제스 일시적으로 오렌지 주스를 넣어 134 00:05:33,170 --> 00:05:35,460 그렇게 손상시키는 전 우유와 컵. 135 00:05:35,460 --> 00:05:37,250 >> 그럼 내가 지금 가서이 문제를 확인 할 수 있습니다. 136 00:05:37,250 --> 00:05:39,210 그것은 noswap.c라고. 137 00:05:39,210 --> 00:05:41,190 그리고 지금 내가 어떤 스왑을 실행할 수 있습니다. 138 00:05:41,190 --> 00:05:43,910 내가 확장하면 참으로 나는, 참조 창 조금 그 139 00:05:43,910 --> 00:05:45,160 x는 1, Y는 2입니다. 140 00:05:45,160 --> 00:05:47,230 그리고 x는 2, Y는 1입니다. 141 00:05:47,230 --> 00:05:51,910 >> 그러나 월요일에 우리가 일을했던 기억 조금 다르게 약자 I 142 00:05:51,910 --> 00:05:56,760 대신 도우미 함수를 구현 만약에 당신이 그 사실은 무효이다. 143 00:05:56,760 --> 00:05:58,010 나는 그것을 교체했다. 144 00:05:58,010 --> 00:06:01,600 나는 그것을 두 개의 매개 변수를주고, 내가 전화 그들과 나는 그들이 나했다. 145 00:06:01,600 --> 00:06:04,380 >> 솔직히, 나는 그들을 x와 y 호출 할 수 있습니다. 146 00:06:04,380 --> 00:06:06,040 중지 아무것도 없다 그 일을에서 나를. 147 00:06:06,040 --> 00:06:08,140 그러나 나는 그 다음의 주장 약간의 모호한. 148 00:06:08,140 --> 00:06:11,910 때문에 월요일 리콜이 우리 이러한 매개 변수가 있다고 주장 149 00:06:11,910 --> 00:06:13,650 값의 복사본이 전달 150 00:06:13,650 --> 00:06:15,640 당신과 그래서 그냥 놨어요 마음은, 제가 생각하기에, 당신이 사용하는 경우 151 00:06:15,640 --> 00:06:17,370 동일한 변수. 152 00:06:17,370 --> 00:06:20,150 >> 그래서 내가 대신 그들에게 전화 할게 와 B 단지 명확성을 위해. 153 00:06:20,150 --> 00:06:21,840 그러나 우리는 그들 대부분 호출 할 수 있습니다 우리가 원하는 건. 154 00:06:21,840 --> 00:06:26,280 그리고 복사 및 붙여 넣기거야 거기에서 효과적으로 코드 155 00:06:26,280 --> 00:06:27,170 여기에 아래로. 156 00:06:27,170 --> 00:06:29,110 난 그냥 작동하는지보고 있기 때문이다. 157 00:06:29,110 --> 00:06:30,790 그래서 꽤 좋은 모양이다. 158 00:06:30,790 --> 00:06:37,390 그리고, 내 X 내 X을 바꿀거야 에, B와 b에 내 Y에 나의 y를 입력합니다. 159 00:06:37,390 --> 00:06:39,130 >> 그래서 다른 말로하면, 똑같은 논리. 160 00:06:39,130 --> 00:06:40,850 제스가했던 똑같은. 161 00:06:40,850 --> 00:06:44,350 그리고 I가해야 할 한 가지 여기에 물론, 지금이 호출됩니다 162 00:06:44,350 --> 00:06:45,990 함수 또는이 함수를 호출합니다. 163 00:06:45,990 --> 00:06:50,430 그래서 두 가지로이 함수를 호출합니다 입력, x와 y 및 명중 저장합니다. 164 00:06:50,430 --> 00:06:52,300 >> 좋아, 그래서 근본적으로 같은 것. 165 00:06:52,300 --> 00:06:55,570 사실, 아마도 프로그램을 만들었습니다 불필요하게 복잡한 166 00:06:55,570 --> 00:07:00,820 그냥 복용 함수를 작성 코드의 약 6 선 반면 I 167 00:07:00,820 --> 00:07:02,970 이전에 구현 한 이 3 막합니다. 168 00:07:02,970 --> 00:07:06,230 >> 그럼 내가 지금 가서 리메이크하자 이, 아니 스왑을하지 않습니다. 169 00:07:06,230 --> 00:07:07,920 좋아, 여기 망쳐. 170 00:07:07,920 --> 00:07:11,290 이 오류가해야 할 수도 있고 그 귀하의 점점 흔히 볼 171 00:07:11,290 --> 00:07:12,380 프로그램은 더 복잡. 172 00:07:12,380 --> 00:07:13,470 그러나 쉽게 수정이있다. 173 00:07:13,470 --> 00:07:15,650 나를 여기까지 뒤로 스크롤 할 수 있습니다. 174 00:07:15,650 --> 00:07:18,190 >> 그리고 내가보고 첫 번째 오류는 무엇입니까? 175 00:07:18,190 --> 00:07:19,520 암시 적 선언. 176 00:07:19,520 --> 00:07:21,466 그것은 일반적으로 무엇을 나타 냅니까? 177 00:07:21,466 --> 00:07:22,830 아, 프로토 타입을 잊어 버렸습니다. 178 00:07:22,830 --> 00:07:26,900 나는 컴파일러를 가르치는 잊었 스왑 존재하는 것입니다 비록 그 179 00:07:26,900 --> 00:07:28,920 처음에 존재하지 않습니다 프로그램의. 180 00:07:28,920 --> 00:07:35,780 그래서 난 그냥, 무효, 스왑을 말할거야 INT, INT B, 세미콜론. 181 00:07:35,780 --> 00:07:37,280 >> 그래서 그것을 구현할 않을거야. 182 00:07:37,280 --> 00:07:39,140 하지만 지금 무슨 일이 여기까지의 일치합니다. 183 00:07:39,140 --> 00:07:42,530 통보, 세미콜론의 부재 여기, 이는 필요하지 않은 경우 184 00:07:42,530 --> 00:07:43,200 구현. 185 00:07:43,200 --> 00:07:46,010 >> 그래서 나는이 리메이크하게, 아니 스왑을하지 않습니다. 186 00:07:46,010 --> 00:07:46,910 더 나은 모양입니다. 187 00:07:46,910 --> 00:07:48,130 아니 스왑을 실행합니다. 188 00:07:48,130 --> 00:07:48,740 그리고 젠장. 189 00:07:48,740 --> 00:07:51,650 우리는 월요일에 있었던 곳에 지금 우리는 돌아 간다 어디에 것은 교환하지 않았다. 190 00:07:51,650 --> 00:07:55,410 >> 그리고 직관적 인 설명은 무엇입니까 왜이는 경우가? 191 00:07:55,410 --> 00:07:56,380 그래? 192 00:07:56,380 --> 00:07:57,630 >> 학생 : [들림]. 193 00:07:57,630 --> 00:08:04,140 194 00:08:04,140 --> 00:08:05,230 >> DAVID 마란 : 그렇습니다. 195 00:08:05,230 --> 00:08:07,330 그래서 a와 b는 x와 y의 복사본입니다. 196 00:08:07,330 --> 00:08:10,680 그리고 사실, 언제든지 당신이 있었어요 지금까지 그 함수를 호출 197 00:08:10,680 --> 00:08:12,540 정수와 같은 변수를 전달 - 198 00:08:12,540 --> 00:08:14,470 스왑 여기에서 기대되는 것처럼 - 199 00:08:14,470 --> 00:08:16,270 너희들은 사본을 전달하고 있습니다. 200 00:08:16,270 --> 00:08:19,150 >> 그것은 조금 걸립니다 의미 이제 시간의, 분할 초, 201 00:08:19,150 --> 00:08:23,270 하나의 비트를 복사하는 컴퓨터 다른 사람의 비트로 변수입니다. 202 00:08:23,270 --> 00:08:24,610 그러나 이러한 큰 문제가 아니다. 203 00:08:24,610 --> 00:08:25,920 그러나 그럼에도 불구하고 사본입니다. 204 00:08:25,920 --> 00:08:30,020 >> 그리고 지금, 스왑의 맥락에서, 나는 성공적으로 사실입니다 205 00:08:30,020 --> 00:08:31,180 A와 B를 변경. 206 00:08:31,180 --> 00:08:33,000 사실, 빠른 작업을 수행하자 정신을 확인합니다. 207 00:08:33,000 --> 00:08:36,830 인쇄 F는 I, 새로운 라인 %입니다. 208 00:08:36,830 --> 00:08:38,770 과에하자 연결합니다. 209 00:08:38,770 --> 00:08:41,830 지금 B와 같은 일을하자. 210 00:08:41,830 --> 00:08:43,640 그리고 여기에 같은 일을하자. 211 00:08:43,640 --> 00:08:47,260 >> 그리고 지금, 저 그 같은 행을 복사하자 다시 함수의 하단에 212 00:08:47,260 --> 00:08:51,250 재미있는 내 세 줄 이후의 실행 및 수도 213 00:08:51,250 --> 00:08:53,270 또 다시 A와 B를 인쇄 할 수 있습니다. 214 00:08:53,270 --> 00:08:56,030 의이 만들 그래서 지금하자, 아니 스왑을하지 않습니다. 215 00:08:56,030 --> 00:08:58,430 나 터미널 창을 만들어 보자 비트 키, 우리가 볼 수 있도록 216 00:08:58,430 --> 00:08:59,520 한 번에 그것의 더. 217 00:08:59,520 --> 00:09:00,860 >> 그리고 어떤 스왑을 실행합니다. 218 00:09:00,860 --> 00:09:04,000 x는 1, Y는 2입니다. 는 1, B는 2입니다. 219 00:09:04,000 --> 00:09:06,070 그리고,은 2, B는 1입니다. 220 00:09:06,070 --> 00:09:09,390 그래서 그냥 제스처럼 작동합니다 여기에 내부 스왑했다. 221 00:09:09,390 --> 00:09:13,090 물론, 그것은 아무 효과가 없어요 메인에있는 변수에 대한. 222 00:09:13,090 --> 00:09:15,360 >> 그래서 우리는 트릭을보고 그것에 우리 바로이 문제를 해결할 수 있을까? 223 00:09:15,360 --> 00:09:19,560 당신은이 범위에 직면 할 때 문제, 당신은 수 그냥 펀트와 X을 224 00:09:19,560 --> 00:09:22,400 와 y 어떤 대신에 변수? 225 00:09:22,400 --> 00:09:23,390 >> 당신은 그들이 지구 만들 수 있습니다. 226 00:09:23,390 --> 00:09:27,560 파일의 맨 위에 넣어 우리는 심지어 15의 게임에서 그랬던 것처럼. 227 00:09:27,560 --> 00:09:28,890 우리는 전역 변수를 사용합니다. 228 00:09:28,890 --> 00:09:32,420 하지만 게임 (15)의 맥락에서, 그것은 세계를 가지고 합리적인 229 00:09:32,420 --> 00:09:37,170 , 보드를 나타내는 변수 A 때문에 15.c의 전체가 전부입니다 230 00:09:37,170 --> 00:09:38,650 그 게임을 구현하는 방법에 대한. 231 00:09:38,650 --> 00:09:41,470 즉의 파일이 할 것들이 존재. 232 00:09:41,470 --> 00:09:44,170 >> 그러나 여기이 경우, 난 함수 스왑을 호출. 233 00:09:44,170 --> 00:09:45,380 나는 두 변수를 교환하고 싶습니다. 234 00:09:45,380 --> 00:09:48,950 그리고 그냥 별거 느낌을 시작합니다 만약 우리의 모든 솔루션 235 00:09:48,950 --> 00:09:51,300 우리가 범위로​​ 실행 문제 문제는 글로벌하게됩니다. 236 00:09:51,300 --> 00:09:54,730 매우 빠르게 우리의 프로그램이기 때문에 아주 엉망이 될 것. 237 00:09:54,730 --> 00:09:57,760 그리고 우리는 매우 드물게 않았다 15.c.의 결과로 238 00:09:57,760 --> 00:10:00,470 >> 거기 밖으로하지만 변 모두 더 나은 방법입니다. 239 00:10:00,470 --> 00:10:05,600 내가 실제로 돌아가서를 삭제할 수 그냥이 코드를 단순화하기 위해, F의를 인쇄 할 수 있습니다. 240 00:10:05,600 --> 00:10:09,160 그리고 내가 제안하자 그 이것은 참 나쁘다. 241 00:10:09,160 --> 00:10:15,990 하지만 대신에 약간의 별표에 추가하는 경우 별, 나는이 대신 설정할 수 있습니다 242 00:10:15,990 --> 00:10:18,670 의 하나로 기능 실제로 조작. 243 00:10:18,670 --> 00:10:25,020 >> 그래서 내가 다시 가서 말을 인정하자 별표는 항상 어렵습니다 244 00:10:25,020 --> 00:10:26,170 그래서 나는 별을 말할 수 있습니다. 245 00:10:26,170 --> 00:10:27,660 난 그냥 하나를 자백합니다. 246 00:10:27,660 --> 00:10:28,190 좋아. 247 00:10:28,190 --> 00:10:30,190 그리고 지금, 내가가는 오전 대신 할 수 있습니까? 248 00:10:30,190 --> 00:10:34,130 >> 모든 그래서 일단, 내가 지정하는거야 대신에 int를 전달 249 00:10:34,130 --> 00:10:37,980 스왑 기능은, 내가 대신 해요 INT 별 말을가는. 250 00:10:37,980 --> 00:10:39,170 지금, 별은 무엇을 나타 냅니까? 251 00:10:39,170 --> 00:10:41,970 이것은 포인터의 개념이다 빙키, 클레이 메이션 캐릭터였다 252 00:10:41,970 --> 00:10:43,465 전 순간을 참조. 253 00:10:43,465 --> 00:10:47,610 >> 우리는 INT 스타의 의미를 말할 그렇다면 이 지금은 될 수 없습니다 것을 254 00:10:47,610 --> 00:10:49,110 그 값에 의해 전달. 255 00:10:49,110 --> 00:10:50,350 그것은 안으로 복사 할 수 없을거야 256 00:10:50,350 --> 00:10:54,700 오히려의 주소는 안으로 전달 될 예정 257 00:10:54,700 --> 00:10:57,840 >> 그래서 컴퓨터의 내부 기억 그렇지 않으면, 메모리의 전체 무리입니다 258 00:10:57,840 --> 00:10:58,760 RAM으로 알려져 있습니다. 259 00:10:58,760 --> 00:11:00,520 그리고 RAM은 단지입니다 바이트의 전체 무리. 260 00:11:00,520 --> 00:11:03,320 Mac 또는 PC가있다 그렇다면 이기가바이트, 당신은 2가 261 00:11:03,320 --> 00:11:05,760 메모리 억 바이트입니다. 262 00:11:05,760 --> 00:11:08,440 >> 지금은 그냥 가정하자 바로 해당 상황이 좋은 질서 유지, 우리 263 00:11:08,440 --> 00:11:09,450 주소를 할당 - 264 00:11:09,450 --> 00:11:10,170 수 - 265 00:11:10,170 --> 00:11:12,270 컴퓨터에있는 RAM의 모든 바이트. 266 00:11:12,270 --> 00:11:15,410 그 2의 첫 번째 바이트 억 숫자 0으로됩니다. 267 00:11:15,410 --> 00:11:18,572 다음 중 하나가 바이트의 번호를 하나의 번호입니다 최대 두, 모든 방법, 점 점 268 00:11:18,572 --> 00:11:20,530 약 20 억에 점. 269 00:11:20,530 --> 00:11:23,640 >> 그래서 당신이 바이트 수는 있습니다 컴퓨터의 메모리. 270 00:11:23,640 --> 00:11:26,460 그래서이 있다고 가정하자 무엇을 우리는 주소를 의미합니다. 271 00:11:26,460 --> 00:11:31,360 그래서 무슨 INT 스타를 볼 때 지금 스왑에 전달 될 272 00:11:31,360 --> 00:11:32,830 의 주소를 입력합니다. 273 00:11:32,830 --> 00:11:37,150 하지의 가치, 그러나 어떤은 우편 주소는 말하자면입니다 - 274 00:11:37,150 --> 00:11:38,810 RAM에서의 위치. 275 00:11:38,810 --> 00:11:41,250 >> 와 마찬가지로 B에 대한, 내가 갈거야 같은 말을합니다. 276 00:11:41,250 --> 00:11:42,720 중간, 스타, 나. 277 00:11:42,720 --> 00:11:46,350 옆 기술적 스타 다른 위치에 갈 수있다. 278 00:11:46,350 --> 00:11:50,140 그러나 우리는되고 별 표준화 것이다 데이터 형식 바로 옆에. 279 00:11:50,140 --> 00:11:54,080 >> 따라서 서명은 이제 의미 스왑, 나 줄 INT의 주소 및 전화 280 00:11:54,080 --> 00:11:55,400 그 주소를. 281 00:11:55,400 --> 00:11:58,690 나에게 또 다른 주소를 제공 Int와 그 주소 b를 호출합니다. 282 00:11:58,690 --> 00:12:01,120 >> 하지만 지금 여기 내 코드를 변경할 수있다. 283 00:12:01,120 --> 00:12:03,470 때문에 INT 온도를 선언하면 - 284 00:12:03,470 --> 00:12:05,580 이는 int 형의 여전히 - 285 00:12:05,580 --> 00:12:08,700 하지만, 그것은에 저장 가치의 어떤 종류의? 286 00:12:08,700 --> 00:12:12,870 명확하게하기 위해, 나는에 넣은 채로 지금 서면으로 코드? 287 00:12:12,870 --> 00:12:14,360 >> 내가있는 위치를 가하고 있어요. 288 00:12:14,360 --> 00:12:16,500 하지만 난 걱정하지 않는다 위치 이제, 오른쪽? 289 00:12:16,500 --> 00:12:21,940 온도는 단지 제스 '제 컵이 존재 존재, 어떤 목적을 위해? 290 00:12:21,940 --> 00:12:23,090 값을 저장합니다. 291 00:12:23,090 --> 00:12:24,830 우유 또는 오렌지 주스. 292 00:12:24,830 --> 00:12:28,520 실제의 주소를 저장할 수 없습니다 그런 것들 중 하나는, 어느 느낀다 293 00:12:28,520 --> 00:12:31,200 이 실시간으로 거의 무의미 어쨌든 세계 상황. 294 00:12:31,200 --> 00:12:34,990 >> 그래서 정말 내가이 온도에 넣을 의 주소 만이 아닙니다 295 00:12:34,990 --> 00:12:36,180 의 내용을 표시합니다. 296 00:12:36,180 --> 00:12:41,930 123 같은 숫자 인 경우 그래서,이는 해당 메모리의 123 번째 바이트 단지 297 00:12:41,930 --> 00:12:45,090 , 점유로 발생하는 값 에가 점유 할 수 발생합니다. 298 00:12:45,090 --> 00:12:49,040 >> 나는 그 주소로 이동하려는 경우 나는 별 말을해야합니다. 299 00:12:49,040 --> 00:12:52,610 마찬가지로, 만약 내가 무엇을 변경했다 주소, I 변경 300 00:12:52,610 --> 00:12:53,570 이를 시작합니다. 301 00:12:53,570 --> 00:12:58,185 나는에서 무엇에 저장할 경우, 위치에 무엇에 위치 302 00:12:58,185 --> 00:13:02,180 B의, 스타 B 호텔. 303 00:13:02,180 --> 00:13:05,340 >> 이 확실히 그래서 짧은 경우에도 아직 침몰 - 그리고 난 기대하지 않을 것이다 304 00:13:05,340 --> 00:13:06,560 너무 빠른 것 - 305 00:13:06,560 --> 00:13:11,100 내가하는 모든 접두어 것을 깨닫게 이러한 제 변수 별, 306 00:13:11,100 --> 00:13:13,350 말 값을 잡아하지 않습니다. 307 00:13:13,350 --> 00:13:14,520 값을 변경하지 마십시오. 308 00:13:14,520 --> 00:13:17,600 오히려, 해당 주소로 이동 그리고 값을 가져옵니다. 309 00:13:17,600 --> 00:13:21,430 그 주소 변화로 이동 이 값을 변경합니다. 310 00:13:21,430 --> 00:13:25,500 >> 그래서 지금, 내가 정상까지 다시 이동하자 방금 여기에 다음 행을 해결하기 위해 311 00:13:25,500 --> 00:13:27,690 일치하는 프로토 타입을 변경할 수 있습니다. 312 00:13:27,690 --> 00:13:30,280 하지만 지금 한 가지를 수행해야합니다. 313 00:13:30,280 --> 00:13:35,500 직관적으로, 그 유형을 변경 한 경우 인수의 스왑 기대하고있다, 314 00:13:35,500 --> 00:13:37,245 나는 다른 무엇을해야합니까? 내 코드에서 변경? 315 00:13:37,245 --> 00:13:39,750 316 00:13:39,750 --> 00:13:40,840 >> 내가 스왑을 호출 할 때. 317 00:13:40,840 --> 00:13:43,340 지금 무엇을하고 있으므로 나는 아직도 교환 할 통과? 318 00:13:43,340 --> 00:13:47,450 값 x와 y의 값 또는 우유와 오렌지 주스. 319 00:13:47,450 --> 00:13:48,510 하지만 난 그렇게하고 싶지 않아. 320 00:13:48,510 --> 00:13:51,060 내가 대신 무엇을 전달하고 싶어? 321 00:13:51,060 --> 00:13:53,050 X의 위치와 Y의 위치. 322 00:13:53,050 --> 00:13:55,300 그들의 우편 주소는 무엇입니까 말하자면. 323 00:13:55,300 --> 00:13:57,600 >> 그래서 그렇게, 앰퍼샌드가있다. 324 00:13:57,600 --> 00:13:59,260 주소와 같은 소리의 앰퍼샌드 종류. 325 00:13:59,260 --> 00:14:03,240 그래서 N, 앰퍼샌드, 주소 의 X 및 Y의 주소. 326 00:14:03,240 --> 00:14:06,790 그래서 우리가 사용하는 의도적이다 앰퍼샌드 함수를 호출 327 00:14:06,790 --> 00:14:10,230 별 선언하고 때 기능을 구현. 328 00:14:10,230 --> 00:14:14,220 >> 로 그냥 앰퍼샌드 생각 연산자의 주소와 같은 스타 329 00:14:14,220 --> 00:14:15,490 운영자가 간다 - 330 00:14:15,490 --> 00:14:18,640 또는 더 적절하게, 역 참조 연산자를 사용합니다. 331 00:14:18,640 --> 00:14:23,480 그래서 단지에 단어의 전체 많아요 지금, 희망, 스왑가는 것을 말한다 332 00:14:23,480 --> 00:14:24,440 정확해야합니다. 333 00:14:24,440 --> 00:14:26,550 >> 내가 가서 확인하자 - 334 00:14:26,550 --> 00:14:30,940 않도록,의 실제로 파일의 이름을 변경하자 이 프로그램은 여전히​​ 스왑 호출되지. 335 00:14:30,940 --> 00:14:33,240 나는 우리가 지금은 swap.c 전화 할게 주장한다. 336 00:14:33,240 --> 00:14:35,670 그래서 스왑합니다. 337 00:14:35,670 --> 00:14:37,520 점, 슬래시, 교환. 338 00:14:37,520 --> 00:14:40,210 >> 그리고 지금 실제로, x는 1, Y는 2입니다. 339 00:14:40,210 --> 00:14:44,040 그리고, x는 2, y를 하나입니다. 340 00:14:44,040 --> 00:14:46,500 그럼 우리는이 작업을 수행 할 수없는 경우 보자 무엇에 관해서는 다르게 조금 341 00:14:46,500 --> 00:14:47,180 여기에 우리가 간다. 342 00:14:47,180 --> 00:14:51,250 먼저, 우리를 확대하자 여기에 화면을 그리기. 343 00:14:51,250 --> 00:14:54,160 나이 순간을 위해 제안하자 - 그리고 여기 그릴 때마다 미러링됩니다 344 00:14:54,160 --> 00:14:58,660 거기에 지금은 - 내가 제안하자 그 여기에 메모리의 전체 무리, 또는 345 00:14:58,660 --> 00:15:00,540 RAM, 내 컴퓨터의 내부입니다. 346 00:15:00,540 --> 00:15:04,140 >> 그리고는, 바이트 수있을 것입니다 ,의 말 1 봅시다. 347 00:15:04,140 --> 00:15:05,720 이 바이트 숫자 2가됩니다. 348 00:15:05,720 --> 00:15:08,220 그리고 더 왕창 수행하고 있습니다 다음에 점 점 점의 무리 349 00:15:08,220 --> 00:15:10,880 20 억이 거기에 있음을 나타냅니다 이러한 것들. 350 00:15:10,880 --> 00:15:13,520 4, 5, 등등. 351 00:15:13,520 --> 00:15:17,055 >> 그래서 처음 다섯 바이트가있다 내 컴퓨터의 메모리가 부족합니다. 352 00:15:17,055 --> 00:15:17,560 모든 권리? 353 00:15:17,560 --> 00:15:19,060 20 억 중 거의. 354 00:15:19,060 --> 00:15:21,120 하지만 지금은 제안거야 다음. 355 00:15:21,120 --> 00:15:27,490 나는 X가 될 것을 제안하는거야 숫자 1을 저장하고, Y는 것입니다 356 00:15:27,490 --> 00:15:29,690 숫자 2를 저장합니다. 357 00:15:29,690 --> 00:15:35,000 나 지금 가서 나타냅니다하자 이 값은 다음과 같습니다. 358 00:15:35,000 --> 00:15:41,510 >> 다음과 같이이 작업을 수행하자. 359 00:15:41,510 --> 00:15:42,870 저에게 잠시만를 제공합니다. 360 00:15:42,870 --> 00:15:44,150 잠깐만. 361 00:15:44,150 --> 00:15:45,680 확인을 클릭합니다. 362 00:15:45,680 --> 00:15:47,560 나는이 좀 만들고 싶어 - 363 00:15:47,560 --> 00:15:50,440 다시이 작업을 수행하자. 364 00:15:50,440 --> 00:15:53,250 그렇지 않으면 나는에 가서 사용하고 같은 숫자, 실수, 365 00:15:53,250 --> 00:15:54,230 여러 번. 366 00:15:54,230 --> 00:15:57,320 >> 그래서 그냥 우리는 다른 번호가 에 대해 이야기 해 보겠습니다이 바이트를 호출 367 00:15:57,320 --> 00:16:03,391 번호 123, 124, 125, 126, 그리고 점 점 점. 368 00:16:03,391 --> 00:16:08,400 나를 내가 갈거야 이제는 주장하자 여기에 값 1, 값 2를 넣어 369 00:16:08,400 --> 00:16:11,990 여기에, 그렇지 않으면 x와 y로 알려져 있습니다. 370 00:16:11,990 --> 00:16:15,300 그래서 그냥 그렇게 일어난다 이 X, 이것은 Y입니다. 371 00:16:15,300 --> 00:16:18,180 >> 그리고 그냥 우연에 의해, 컴퓨터, 운영 체제, 372 00:16:18,180 --> 00:16:21,890 위치에 X를 넣어 발생 번호 123. 373 00:16:21,890 --> 00:16:25,590 와 y 위치 124에서 끝났다 - 374 00:16:25,590 --> 00:16:26,330 젠장. 375 00:16:26,330 --> 00:16:28,700 나는이 해결해야합니다. 376 00:16:28,700 --> 00:16:34,040 오 이런, 난 정말 이렇게 할 수 있습니까? 377 00:16:34,040 --> 00:16:37,340 예,이과를 해결하려면 오늘이에 대한 적절한 나. 378 00:16:37,340 --> 00:16:39,950 죄송합니다, 현재에 새로운. 379 00:16:39,950 --> 00:16:45,020 >> 127, 131, 그리고이되고 싶지 않았다 복잡하지만 왜 변경 않았다 380 00:16:45,020 --> 00:16:46,340 이 숫자? 381 00:16:46,340 --> 00:16:48,360 나는 정수가 원하기 때문에 실제로 4 바이트 수. 382 00:16:48,360 --> 00:16:49,810 그럼 이것에 대해 최고 항문 될 수 있습니다. 383 00:16:49,810 --> 00:16:53,800 경우 1 해결 될 일이 있도록 123 2 주소 될 것입니다 384 00:16:53,800 --> 00:16:55,730 그냥 4 부전승 거리의 127 때문이다. 385 00:16:55,730 --> 00:16:56,210 그게 다야. 386 00:16:56,210 --> 00:16:58,640 그리고 우리는 모두 잊어 것이다 세계에서 다른 주소. 387 00:16:58,640 --> 00:17:03,320 >> 그래서 X는 위치 123입니다 Y 위치 127입니다. 388 00:17:03,320 --> 00:17:05,770 그리고 지금, 나는 실제로 무엇을 할 수행 할? 389 00:17:05,770 --> 00:17:10,099 지금 스왑을 호출 할 때, 무엇을의 실제로 무슨 일? 390 00:17:10,099 --> 00:17:14,920 글쎄, 난 스왑을 호출 할 때, 내가 전달 해요 X의 주소와 y의 주소를 입력합니다. 391 00:17:14,920 --> 00:17:18,540 그래서 예를 들어,이 두 가지 종이 지금 두 대표 392 00:17:18,540 --> 00:17:23,510 인수 a와 b 스왑, 내가 뭘 오전 이들의 첫 번째에 쓰는 것 393 00:17:23,510 --> 00:17:27,720 나는로 참조 호출 할거야 무엇입니까? 394 00:17:27,720 --> 00:17:30,610 >> 정확히 123. 395 00:17:30,610 --> 00:17:31,905 그래서 내가 주장이있다. 396 00:17:31,905 --> 00:17:32,955 이 매개 변수입니다. 397 00:17:32,955 --> 00:17:35,856 거기에서 x의 주소를 가하고 있어요. 398 00:17:35,856 --> 00:17:38,152 >> 그게 뭐야? 399 00:17:38,152 --> 00:17:40,890 >> 그게 뭐야? 400 00:17:40,890 --> 00:17:41,190 >> 아니, 아니. 401 00:17:41,190 --> 00:17:41,720 즉 OK입니다. 402 00:17:41,720 --> 00:17:42,570 여전히 좋은, 여전히 좋아요. 403 00:17:42,570 --> 00:17:43,530 그래서이 있습니다. 404 00:17:43,530 --> 00:17:46,240 지금 용지의 두 번째 조각에, 이 B가 될 것입니다, 나는 뭐야 405 00:17:46,240 --> 00:17:49,010 에 작성 될 것 이 종이? 406 00:17:49,010 --> 00:17:50,080 127. 407 00:17:50,080 --> 00:17:53,720 >> 그래서 이후에 변경된 유일한 이 이야기의 우리의 이전 주어는있다 408 00:17:53,720 --> 00:17:58,590 오히려 1 문자보다 2, 난 123에서 127로 전달하는 것. 409 00:17:58,590 --> 00:18:02,130 그리고 지금이 안에 넣을거야 이 상자의 모든 권리? 410 00:18:02,130 --> 00:18:04,640 그래서 검은 색 상자가 나타 스왑 기능. 411 00:18:04,640 --> 00:18:07,230 >> 한편,의 지금 누군가가 보자 스왑 기능을 구현합니다. 412 00:18:07,230 --> 00:18:09,090 여기까지 누군가가 것 자원 봉사 하시겠습니까? 413 00:18:09,090 --> 00:18:09,560 올라 와요. 414 00:18:09,560 --> 00:18:11,080 당신의 이름은 무엇입니까? 415 00:18:11,080 --> 00:18:11,460 찰리. 416 00:18:11,460 --> 00:18:12,080 좋아, 찰리. 417 00:18:12,080 --> 00:18:14,810 올라 와요. 418 00:18:14,810 --> 00:18:17,310 >> 그래서 찰리는 연극을하려고하는데 우리 블랙 박스의 역할. 419 00:18:17,310 --> 00:18:21,460 나는 당신이 싶은 무엇 찰리, 지금과 같은 방식으로 스왑을 구현합니다 420 00:18:21,460 --> 00:18:25,320 즉,이 두 주소를 부여, 당신은 실제로 가고 있었다 421 00:18:25,320 --> 00:18:26,330 값을 변경합니다. 422 00:18:26,330 --> 00:18:28,290 그리고 귀에 속삭이는 것 여기에 TV를 실행하는 방법에 대해 설명합니다. 423 00:18:28,290 --> 00:18:29,930 >> 그래서 가서, 당신은 블랙 박스입니다. 424 00:18:29,930 --> 00:18:30,920 거기에 도달합니다. 425 00:18:30,920 --> 00:18:34,054 당신은 어떤 값에 대한 참조와 볼거리 당신이 나에 대해 어떤 값을 볼 수 있습니까? 426 00:18:34,054 --> 00:18:36,740 >> 찰리 : 123이며, B는 127입니다. 427 00:18:36,740 --> 00:18:37,530 >> DAVID 마란 : OK, 정확히. 428 00:18:37,530 --> 00:18:38,940 잠시 거기에 지금은 일시 정지. 429 00:18:38,940 --> 00:18:41,680 당신이 지금 할 수있는 일은 우선 코드에 따라 - 어떤 430 00:18:41,680 --> 00:18:43,220 지금 화면에 끌어거야 - 431 00:18:43,220 --> 00:18:46,750 조금을 할당하는 것입니다 메모리 비트 온도를했다. 432 00:18:46,750 --> 00:18:48,850 그래서 앞서 갈 건데 당신이 메모리를 제공합니다. 433 00:18:48,850 --> 00:18:52,210 >> 그래서이 세 번째 변수가 될 것입니다 당신은에 액세스 할 수 있는지 434 00:18:52,210 --> 00:18:54,080 당신은 임시했다. 435 00:18:54,080 --> 00:18:57,120 그리고 당신은 무엇을 쓸거야 용지의 임시 조각에? 436 00:18:57,120 --> 00:19:02,524 437 00:19:02,524 --> 00:19:03,470 >> 찰리 : 포인터, 오른쪽? 438 00:19:03,470 --> 00:19:04,790 >> DAVID 마란 : OK, 잘하지 포인터를 반드시. 439 00:19:04,790 --> 00:19:07,230 그래서했습니다하는 코드의 라인 오른쪽에 강조, 440 00:19:07,230 --> 00:19:07,900 거기부터 시작하자. 441 00:19:07,900 --> 00:19:08,890 그것은 스타 말합니다. 442 00:19:08,890 --> 00:19:11,670 그래서 현재 저장되어 번호 123. 443 00:19:11,670 --> 00:19:16,660 그냥 직관적으로 무엇을 스타 123하셨습니까? 444 00:19:16,660 --> 00:19:21,630 >> 그러나 구체적으로,이 경우 123, 별은 무엇을 의미? 445 00:19:21,630 --> 00:19:22,560 의 값입니다. 446 00:19:22,560 --> 00:19:24,580 이상 부담이갑니다. 447 00:19:24,580 --> 00:19:28,620 그래서에서를 잡고, 내가 그를 제안하자 당신의 손이 가서 치료하는 448 00:19:28,620 --> 00:19:29,430 것처럼 그것은지도입니다. 449 00:19:29,430 --> 00:19:32,940 그리고 컴퓨터에 자신을 걸어 메모리, 무엇인가 우리를 찾을 450 00:19:32,940 --> 00:19:36,520 위치 123. 451 00:19:36,520 --> 00:19:37,720 정확히. 452 00:19:37,720 --> 00:19:41,100 >> 그래서 우리는 위치에 123을 참조하십시오 뭐, 분명히? 453 00:19:41,100 --> 00:19:44,240 OK, 이제 당신은 어떤 값을 수 있습니다 온도에 넣어가는거야? 454 00:19:44,240 --> 00:19:44,750 정확히. 455 00:19:44,750 --> 00:19:45,600 그래서 가서 그렇게. 456 00:19:45,600 --> 00:19:51,280 와 조각에 숫자 1을 기록 현재 온도라는 제목의 논문. 457 00:19:51,280 --> 00:19:53,540 >> 이제 다음 단계가 당신은 구현하는거야 458 00:19:53,540 --> 00:19:54,310 어떻게 될 것입니다. 459 00:19:54,310 --> 00:19:57,820 음,의 오른쪽에 코드의 다음 줄 스타 B입니다. B의 460 00:19:57,820 --> 00:19:59,260 과정은 주소를 저장합니다. 461 00:19:59,260 --> 00:20:02,270 즉, 127를 해결합니다. 462 00:20:02,270 --> 00:20:06,620 스타 B 자연스럽게 말하기 무슨 뜻 이죠? 463 00:20:06,620 --> 00:20:08,700 >> 해당 위치로 이동합니다. 464 00:20:08,700 --> 00:20:14,988 그래서 가서 무엇이 우리를 찾을 위치 127. 465 00:20:14,988 --> 00:20:15,480 확인을 클릭합니다. 466 00:20:15,480 --> 00:20:19,170 물론, 위치, 127, 여전히 값이 2입니다. 467 00:20:19,170 --> 00:20:24,060 그래서 당신은에서 지금 매장가는거야 의 위치에서 무엇입니까? 468 00:20:24,060 --> 00:20:26,860 그래서 별 의미가있는 위치로 이동합니다. 469 00:20:26,860 --> 00:20:29,770 위치는 무엇인가? 470 00:20:29,770 --> 00:20:30,430 >> 정확히. 471 00:20:30,430 --> 00:20:34,190 그래서 지금, 당신은 변경하려는 경우 해당 위치에서 무엇을 - 472 00:20:34,190 --> 00:20:36,470 내가 가서 실행하겠습니다 지우개가 여기에 있습니다. 473 00:20:36,470 --> 00:20:37,760 이제 브러쉬에 다시 넣습니다. 474 00:20:37,760 --> 00:20:42,190 어떤 숫자는 쓸거야 이제 빈 상자에? 475 00:20:42,190 --> 00:20:42,850 >> 정확히. 476 00:20:42,850 --> 00:20:46,470 그래서이 코드 라인은 명확하게 -하자 나 찰리가 무슨 짓 일시 중지 477 00:20:46,470 --> 00:20:51,730 여기에서 지적 그가 그냥 이루어집니다 것은 위치 123 그 상자에 쓰기 478 00:20:51,730 --> 00:20:55,150 B에서 이전에 있던 값. 479 00:20:55,150 --> 00:20:59,140 그래서 우리는 지금 실제로 구현 한 코드의 두 번째 줄. 480 00:20:59,140 --> 00:21:01,920 >> 지금 불행히도, 거기에 남아 여전히 한 줄. 481 00:21:01,920 --> 00:21:04,900 말 그대로 임시 지금 무엇입니까? 482 00:21:04,900 --> 00:21:06,200 그것은 분명 번호 하나입니다. 483 00:21:06,200 --> 00:21:07,020 그 주소가 아닙니다. 484 00:21:07,020 --> 00:21:09,380 그것은 일종의 단지 숫자의 주 하나의 변수입니다. 485 00:21:09,380 --> 00:21:13,520 >> 그리고 지금 당신은 스타 B는 것을 의미 말할 때 주소 B로 이동하는가이다 486 00:21:13,520 --> 00:21:15,090 여기에 물론. 487 00:21:15,090 --> 00:21:16,020 그래서 일단 당신이 거기에 도착 - 488 00:21:16,020 --> 00:21:18,320 내가 가서 실제로 무엇을 삭제합니다 가 - 당신은 무엇이다 489 00:21:18,320 --> 00:21:20,820 위치 127 지금 쓰려고? 490 00:21:20,820 --> 00:21:22,010 >> 찰리 : 온도, 하나입니다. 491 00:21:22,010 --> 00:21:23,430 >> DAVID 마란 : 온도, 하나입니다. 492 00:21:23,430 --> 00:21:25,670 그리고 결국 임시로 어떻게됩니까? 493 00:21:25,670 --> 00:21:26,600 음, 우리는 정말 모르겠어요. 494 00:21:26,600 --> 00:21:27,420 우리가 정말 상관 없어. 495 00:21:27,420 --> 00:21:31,090 우리는 기능을 구현 한 모든 시간 지금까지, 모든 지역 변수가있다 496 00:21:31,090 --> 00:21:31,890 실제로 지역입니다. 497 00:21:31,890 --> 00:21:33,060 그리고 그들은 그냥 사라집니다. 498 00:21:33,060 --> 00:21:35,040 그들은 작동 회수하고 결국 시스템입니다. 499 00:21:35,040 --> 00:21:39,800 >> 그래서 온도는 여전히이 있다는 사실을 값 1은 일종의 근본적이다 500 00:21:39,800 --> 00:21:41,150 우리에게 재미. 501 00:21:41,150 --> 00:21:43,100 좋아, 그래서 박수 우리는 찰리 수 있다면. 502 00:21:43,100 --> 00:21:46,400 아주 잘 했어. 503 00:21:46,400 --> 00:21:51,520 >> 좋아, 그래서 더한다 이것은 우리가 할 수있는 것은? 504 00:21:51,520 --> 00:21:54,400 그래서 우리가 있었다는 것을 밝혀 몇 가지 흰색 거짓말을 505 00:21:54,400 --> 00:21:55,540 꽤 많은 시간 동안. 506 00:21:55,540 --> 00:21:59,990 사실, 그것은 그 문자열을 밝혀 이 모든 시간이 정말 없습니다 507 00:21:59,990 --> 00:22:02,190 본질적으로 일련의 문자. 508 00:22:02,190 --> 00:22:03,980 그것은 어떤 종류의 직관적이다. 509 00:22:03,980 --> 00:22:08,270 >> 그러나 엄밀히 말하자면, 문자열입니다 우리가 내부에서 선언 된 데이터 유형 510 00:22:08,270 --> 00:22:12,170 세상을 단순화하기 위해 CS50 라이브러리 클래스의 처음 몇 주 동안. 511 00:22:12,170 --> 00:22:20,130 어떤 캐릭터가 정말하는 주소입니다 어딘가 RAM의 문자. 512 00:22:20,130 --> 00:22:25,530 문자열은 123처럼, 정말 번호 구별하는 일 또는 127, 513 00:22:25,530 --> 00:22:28,420 문자열에서 시작 위치 컴퓨터의 메모리. 514 00:22:28,420 --> 00:22:31,870 >> 그러나를 나타내지 않는 문자열 라기보다는 그 자체. 515 00:22:31,870 --> 00:22:33,460 우리는이 다음과 같이 볼 수 있습니다. 516 00:22:33,460 --> 00:22:35,980 내가 가서 열어 보자 사이의 몇 가지 코드 517 00:22:35,980 --> 00:22:38,340 오늘의 소스 코드 예제. 518 00:22:38,340 --> 00:22:42,225 내가 가서 열거야 최대, 비교 - 0.c, 보자. 519 00:22:42,225 --> 00:22:44,830 520 00:22:44,830 --> 00:22:48,790 이 것입니다 버그 프로그램입니다 다음과 같이 구현한다. 521 00:22:48,790 --> 00:22:49,040 >> 첫번째로 올려주세요. 522 00:22:49,040 --> 00:22:50,420 내가 뭔가를 말할거야. 523 00:22:50,420 --> 00:22:52,660 그럼 앞서 갈 건데 사용자로부터 문자열을 524 00:22:52,660 --> 00:22:53,750 그 다음 행합니다. 525 00:22:53,750 --> 00:22:55,370 그럼 내가 다시 말할거야. 526 00:22:55,370 --> 00:22:57,540 다음 나는 다른 줄게 사용자로부터 문자열입니다. 527 00:22:57,540 --> 00:23:00,390 >> 통보, 나는 중 하나를 보여주는거야 의라는 변수에 문자열 및 528 00:23:00,390 --> 00:23:03,040 이러한 문자열의 또 다른 t라는 변수있다. 529 00:23:03,040 --> 00:23:07,480 지금은 매우, 요구하는거야 합리적들 같으면 t 같은지 530 00:23:07,480 --> 00:23:08,940 문자열은 동일합니다. 531 00:23:08,940 --> 00:23:09,970 당신은 같은 일을 입력합니다. 532 00:23:09,970 --> 00:23:11,830 그렇지 않으면, 문자열은 동일하지 않습니다. 533 00:23:11,830 --> 00:23:15,440 >> 결국, 우리가 입력 두 정수, 두 경우 문자, 두 개의 수레, 두 복식의 534 00:23:15,440 --> 00:23:18,400 우리가 얘기 한 데이터 유형 지금까지 그들을 비교 - 535 00:23:18,400 --> 00:23:22,070 우리는 얼마 전 매우 분명하게 기억합니다 이 작업을 수행하지 않는 것이 있기 때문에 536 00:23:22,070 --> 00:23:25,840 단일 등호 물론입니다 할당 연산자. 537 00:23:25,840 --> 00:23:26,820 그래서 버그가 될 것입니다. 538 00:23:26,820 --> 00:23:29,260 >> 우리는 동등한 등호를 사용, 참 비교되는 539 00:23:29,260 --> 00:23:31,050 진정한 평등 확인해보세요. 540 00:23:31,050 --> 00:23:32,275 하지만이 버그가 주장한다. 541 00:23:32,275 --> 00:23:37,400 내가 가서 영을 비교하는 경우는, 그리고 도트 슬래시 제로를 비교합니까. 542 00:23:37,400 --> 00:23:39,700 나는 안녕하세요, 보자에 입력합니다. 543 00:23:39,700 --> 00:23:41,590 그리고 다시 한 번 인사를하자. 544 00:23:41,590 --> 00:23:46,040 말 그대로 같은 것, 컴퓨터 나는 다른 일을 입력 주장. 545 00:23:46,040 --> 00:23:47,640 >> 이제 어쩌면 내가 뭔가를 잘못 입력. 546 00:23:47,640 --> 00:23:49,910 내 이름이 시간을 입력합니다. 547 00:23:49,910 --> 00:23:52,580 내 말은, 안녕하세요. 548 00:23:52,580 --> 00:23:54,770 안녕하세요. 549 00:23:54,770 --> 00:23:57,360 그것은 매번 다릅니다. 550 00:23:57,360 --> 00:23:58,430 >> 글쎄, 이유는? 551 00:23:58,430 --> 00:24:00,140 정말 무슨 일인지 후드 아래? 552 00:24:00,140 --> 00:24:03,270 그럼, 정말 아래에있는거야 후드는 문자열 553 00:24:03,270 --> 00:24:07,410 내가 예를 들어 첫 시간에 입력 단어는 물론, 안녕하세요있다. 554 00:24:07,410 --> 00:24:11,660 그러나 우리는 아래에이 표시하는 경우 후드는 기억이 555 00:24:11,660 --> 00:24:13,470 문자열 배열입니다. 556 00:24:13,470 --> 00:24:15,040 그리고 우리는 과거에 많이 말한. 557 00:24:15,040 --> 00:24:20,200 >> 내가 이렇게 그 배열을 그릴 경우에, 난 확실히 뭔가를 표현하는 것 558 00:24:20,200 --> 00:24:23,030 우리는 잠시 전에했던 것과 유사. 559 00:24:23,030 --> 00:24:25,390 뭔가 실제로있다 여기에서 특수. 560 00:24:25,390 --> 00:24:28,090 우리는에서 무슨 일을 한 결정 않았다 각 문자열의 끝? 561 00:24:28,090 --> 00:24:30,760 그래, 백 슬래쉬 제로가되는 것입니다 대표 단지 방법 562 00:24:30,760 --> 00:24:33,610 말 그대로, 00000000. 563 00:24:33,610 --> 00:24:35,680 행 8 개의 0 비트입니다. 564 00:24:35,680 --> 00:24:37,610 >> 나는 솔직히 모르겠어요 이 후거야. 565 00:24:37,610 --> 00:24:40,090 그건 그냥 잔뜩 더 많은 RAM의 내 컴퓨터의 내부입니다. 566 00:24:40,090 --> 00:24:40,970 그러나 이것은 배열입니다. 567 00:24:40,970 --> 00:24:42,260 우리는 전에 배열에 대해 이야기했다. 568 00:24:42,260 --> 00:24:45,010 우리는 일반적으로 배열에 대해 이야기 위치 제로 것으로, 569 00:24:45,010 --> 00:24:46,580 그 다음 하나, 둘. 570 00:24:46,580 --> 00:24:47,950 하지만 그건 단지 편의를 위해이다. 571 00:24:47,950 --> 00:24:49,380 그리고 그것은 완전히 관계이다. 572 00:24:49,380 --> 00:24:53,010 >> 당신은 실제로의 메모리를 받고있을 때 컴퓨터, 그것은 물론 어떤의의 573 00:24:53,010 --> 00:24:55,450 20 억 일부 홀수 바이트, 잠재적으로. 574 00:24:55,450 --> 00:24:59,100 그래서 정말 후드 아래, 모든 시간, 예. 575 00:24:59,100 --> 00:25:01,670 이것은 매우 잘 브래킷 제로 될 수 있습니다. 576 00:25:01,670 --> 00:25:04,780 하지만 당신은 아래에도 깊이 파고 경우 후드, 그건 정말이야 577 00:25:04,780 --> 00:25:07,000 번호 123를 해결. 578 00:25:07,000 --> 00:25:09,150 이 주소 124입니다. 579 00:25:09,150 --> 00:25:11,040 이 주소 125. 580 00:25:11,040 --> 00:25:12,540 >> 그리고 나는이 시간을 망치지 않았다. 581 00:25:12,540 --> 00:25:15,840 이 지금은 한 바이트 떨어져 어떤 이유? 582 00:25:15,840 --> 00:25:17,930 문자가 얼마나 큰? 583 00:25:17,930 --> 00:25:19,170 문자는 한 바이트이다. 584 00:25:19,170 --> 00:25:20,570 INT는 일반적으로 4 바이트입니다. 585 00:25:20,570 --> 00:25:24,850 내가 123을 한 이유 때문에 즉,의 127, 131 등. 586 00:25:24,850 --> 00:25:27,560 지금은 수학 간단하게 유지할 수 있습니다 그냥 1을 더한 않습니다. 587 00:25:27,560 --> 00:25:30,510 그리고 지금은 정말 무슨이다 후드 아래에. 588 00:25:30,510 --> 00:25:37,760 >> 당신이 뭔가를 선언 그래서 때 s 문자열이 사실이다 - 589 00:25:37,760 --> 00:25:39,170 그것은 밝혀 - 590 00:25:39,170 --> 00:25:41,190 문자 스타. 591 00:25:41,190 --> 00:25:44,640 스타는 물론 의미 주소, 일명 포인터. 592 00:25:44,640 --> 00:25:46,200 그래서 뭔가의 주소입니다. 593 00:25:46,200 --> 00:25:47,510 무엇의 주소입니다? 594 00:25:47,510 --> 00:25:47,760 >> 잘 - 595 00:25:47,760 --> 00:25:51,680 나는 매우를 볼 수있는 유일한 사람이야 중요한 점은 내가 만드는, 또는 생각 해요 596 00:25:51,680 --> 00:25:52,560 내가 만들고있어. 597 00:25:52,560 --> 00:25:55,270 그래서 문자열 - 598 00:25:55,270 --> 00:25:57,180 슬픈 것은 제가 모니터가있다 거기 어디 599 00:25:57,180 --> 00:25:58,100 것을 볼 수 있었다. 600 00:25:58,100 --> 00:26:00,990 >> 좋아요, 문자열들 무엇 나는 이전에 선언했다. 601 00:26:00,990 --> 00:26:04,600 하지만 조금 덕분에 밝혀 CS50 도서관에서 마법이 모든 602 00:26:04,600 --> 00:26:08,780 시간 문자열이 그대로있다 문자 별이었다. 603 00:26:08,780 --> 00:26:11,310 별은 다시 의미 포인터 나 주소입니다. 604 00:26:11,310 --> 00:26:14,180 그것은 측면을 노릴는 사실 단어 문자는의 의미 605 00:26:14,180 --> 00:26:15,970 문자의 주소입니다. 606 00:26:15,970 --> 00:26:23,100 >> 문자열이라고 얻고, 내가 입력 그렇다면 H-E-L-L-O에서 얻을는지 지금 제안 607 00:26:23,100 --> 00:26:27,330 문자열은 문자를 모두 반환하고 이 시간, 우리는했습니다 오히려하더라도 608 00:26:27,330 --> 00:26:29,980 세계를 단순화? 609 00:26:29,980 --> 00:26:33,310 문자열을 실제로 얻을 무엇입니까 그것의 반환 값으로 반환? 610 00:26:33,310 --> 00:26:35,830 611 00:26:35,830 --> 00:26:38,720 >> 이 경우 123 예를 들어. 612 00:26:38,720 --> 00:26:42,630 우리는 이전에 문자열을 얻을 말한 단순히 문자열의 시퀀스를 반환 613 00:26:42,630 --> 00:26:43,300 자. 614 00:26:43,300 --> 00:26:44,790 하지만 그 하얀 거짓말의 비트입니다. 615 00:26:44,790 --> 00:26:48,010 방법은 문자열이 진짜로 작동 얻을 후드 아래에 그것을 가져입니다 616 00:26:48,010 --> 00:26:48,930 사용자로부터 문자열입니다. 617 00:26:48,930 --> 00:26:51,530 그것은 그 문자를 풍덩 메모리에 그 또는 그녀는 형식입니다. 618 00:26:51,530 --> 00:26:54,680 그것은 끝에 백 슬래시 제로를두고 문자 그 순서. 619 00:26:54,680 --> 00:26:57,310 >> 하지만 문자열 나올까요 그대로 반환? 620 00:26:57,310 --> 00:27:02,710 그것은 문자 그대로의 주소를 반환 RAM의 첫 번째 바이트가 621 00:27:02,710 --> 00:27:04,130 그것은 그 강도에 사용됩니다. 622 00:27:04,130 --> 00:27:07,500 그리고 그것은 반환하여 해당 단지 밝혀 의 단일 주소 623 00:27:07,500 --> 00:27:12,120 문자열의 첫 번째 문자는, 그입니다 의 전체를 찾기위한 충분한 624 00:27:12,120 --> 00:27:12,630 문자열입니다. 625 00:27:12,630 --> 00:27:16,930 >> 즉, 문자열이없는하세요 123 124 125 반환합니다. 626 00:27:16,930 --> 00:27:19,950 그것은 나에게 긴 줄이 없습니다 그 바이트의 모든 목록 627 00:27:19,950 --> 00:27:20,740 내 문자열을 사용하고 있습니다. 628 00:27:20,740 --> 00:27:22,670 하나 때문에, 그들은 백업하는 모든 돌아온다. 629 00:27:22,670 --> 00:27:28,160 그리고, 첫 번째 주소에 두를 기반으로 문자열이 끝나는 위치를 알아낼 수 있습니다. 630 00:27:28,160 --> 00:27:29,910 어떻게? 631 00:27:29,910 --> 00:27:33,490 >> 특수 널 문자, 마지막에 제로 백 슬래시. 632 00:27:33,490 --> 00:27:35,430 그래서 다른 말로, 만약 당신은 주위에 전달 - 633 00:27:35,430 --> 00:27:36,530 변수의 내부 - 634 00:27:36,530 --> 00:27:41,300 문자의 주소, 당신은 가정 모든 문자열의 끝에서, 모든 것을 635 00:27:41,300 --> 00:27:45,040 우리 인간과 같은 일련의 문자 당신이 가정하는 경우, 문자열의 생각 636 00:27:45,040 --> 00:27:48,600 거기에 이러한 문자열의 끝에서 백 슬래시 제로, 당신은 황금입니다. 637 00:27:48,600 --> 00:27:52,430 당신은 항상 찾을 수 있기 때문에 문자열의 끝. 638 00:27:52,430 --> 00:27:54,870 >> 이제 정말로 그 거예요 이 프로그램에? 639 00:27:54,870 --> 00:27:59,990 왜이 프로그램입니다 비교 - 0.c, 버그? 640 00:27:59,990 --> 00:28:01,690 실제로 어떻게 비교되고 있는가? 641 00:28:01,690 --> 00:28:02,420 그래? 642 00:28:02,420 --> 00:28:05,000 >> 학생 : [들림]. 643 00:28:05,000 --> 00:28:05,730 >> DAVID 마란 : 그렇습니다. 644 00:28:05,730 --> 00:28:08,350 그것은 위치를 비교하는 것 문자열. 645 00:28:08,350 --> 00:28:12,420 사용자가 인사 한 번에 입력했습니다 그렇다면, 내가 그랬던 것처럼, 메모리 끝날 수도 646 00:28:12,420 --> 00:28:13,430 이처럼 보이는. 647 00:28:13,430 --> 00:28:18,210 다시 인사에서 사용자가 다음 유형의 경우, 그러나 다시 문자열을 호출하여 C는 648 00:28:18,210 --> 00:28:21,800 당신은 특히 영리 가르쳐주지 않는 그것은 코드를 작성하여 영리합니다. 649 00:28:21,800 --> 00:28:22,430 >> C - 650 00:28:22,430 --> 00:28:23,860 더 일반적으로, 컴퓨터 - 651 00:28:23,860 --> 00:28:27,370 당신은 안녕 다시 단어를 입력하면, 당신은 당신이받을거야 알아. 652 00:28:27,370 --> 00:28:31,480 당신은 두 번째 배열을받을거야 메모리 즉, 예 수를 발생 653 00:28:31,480 --> 00:28:35,510 H-E-L-L-O를 저장하고 등등. 654 00:28:35,510 --> 00:28:38,240 >> 그것은에 같은 모양 것 우리 인간 만이 주소 655 00:28:38,240 --> 00:28:39,460 123하지 않을 수 있습니다. 656 00:28:39,460 --> 00:28:42,470 그것은 그냥 일어날 수있는 운영 체제에서 사용 가능한 일부가 657 00:28:42,470 --> 00:28:45,430 위치 예를 들어 공간 - 658 00:28:45,430 --> 00:28:49,820 임의 뭔가 말을하자, 이 같은 위치 200입니다. 659 00:28:49,820 --> 00:28:51,620 이 위치 201입니다. 660 00:28:51,620 --> 00:28:53,060 이 위치 202입니다. 661 00:28:53,060 --> 00:28:55,730 우리는 그건 아무 생각이 없다 메모리에 될 것이다. 662 00:28:55,730 --> 00:28:59,110 >> 그러나이 의미하는 것은 무엇인가 있다는 것입니다 s에 최종적으로 저장 될 것? 663 00:28:59,110 --> 00:29:00,750 번호 123. 664 00:29:00,750 --> 00:29:04,860 , t에 저장 될 무슨 이 임의의 예? 665 00:29:04,860 --> 00:29:06,300 번호 200. 666 00:29:06,300 --> 00:29:11,410 그리고 그 다음 의미 모두가 분명히 123 200 동일하지 않습니다. 667 00:29:11,410 --> 00:29:14,940 그리고이 절대 조건이있는 경우 true로 평가합니다. 668 00:29:14,940 --> 00:29:18,430 GET 문자열이 서로 다른 사용하고 있기 때문에 메모리 덩어리마다. 669 00:29:18,430 --> 00:29:20,360 >> 이제 우리는이에게 다시 볼 수 있습니다 또 다른 예있다. 670 00:29:20,360 --> 00:29:23,764 내가 가서 복사 0.c을 열 수 있습니다. 671 00:29:23,764 --> 00:29:28,770 나는이 예제가가는 주장 시도 -하지만 실패 - 두 문자열을 복사 할 수 672 00:29:28,770 --> 00:29:29,910 다음과 같다. 673 00:29:29,910 --> 00:29:31,730 >> 내가 뭔가를 말할거야 사용자에게. 674 00:29:31,730 --> 00:29:34,490 그때를 얻을거야 문자열과 그것의 호출합니다. 675 00:29:34,490 --> 00:29:36,400 그리고 지금, 여기이 검사를하고 있어요. 676 00:29:36,400 --> 00:29:37,990 우리는이 동안을 다시 언급했다. 677 00:29:37,990 --> 00:29:42,490 그러나시는 문자열 null이 반환을 얻을 수 있습니다 다른 특수 문자 또는 특수 678 00:29:42,490 --> 00:29:45,050 기호하자 말한다. 679 00:29:45,050 --> 00:29:45,900 그것은 메모리 부족의 경우. 680 00:29:45,900 --> 00:29:48,970 >> 예를 들어, 사용자가 실제로있는 경우 흉포 어려운 유형 인 681 00:29:48,970 --> 00:29:51,220 의 문자 수 키보드와 안타 입력합니다. 682 00:29:51,220 --> 00:29:54,580 문자의 수는 단지 수없는 경우 미친 뭐든 RAM에 맞게 683 00:29:54,580 --> 00:29:57,820 이유는 잘 문자열 수도 얻을 잘 NULL을 반환합니다. 684 00:29:57,820 --> 00:30:01,080 >> 또는 프로그램 자체가 많은 일을하는 경우 다른 것들과 거기의 685 00:30:01,080 --> 00:30:03,790 GET 문자열에 대한 메모리가 충분하지 않습니다 성공하려면, 그것은 종료 될 수 있습니다 686 00:30:03,790 --> 00:30:05,240 널 (null)을 반환까지. 687 00:30:05,240 --> 00:30:07,160 그러나의 더 정확한하자 이것이 무엇으로. 688 00:30:07,160 --> 00:30:10,280 의 데이터 형식은 정말 무엇입니까? 689 00:30:10,280 --> 00:30:11,610 문자 스타. 690 00:30:11,610 --> 00:30:14,560 >> 그래서 지금 우리는 껍질을 수 밝혀 널의 레이어를 백업합니다. 691 00:30:14,560 --> 00:30:17,500 밝혀 NULL입니다 - 네, 분명히 특수 기호. 692 00:30:17,500 --> 00:30:19,190 하지만 정말 무엇입니까? 693 00:30:19,190 --> 00:30:25,220 정말, 널 (null)은 심볼이 우리 인간뿐만 아니라 제로를 표현하기 위해 사용합니다. 694 00:30:25,220 --> 00:30:29,010 >> C의 저자 및 컴퓨터 때문에 더 일반적으로, 년 전에 결정 695 00:30:29,010 --> 00:30:30,010 즉, 당신은 무엇을 알고있다. 696 00:30:30,010 --> 00:30:34,850 왜 우리는 보장하지 않는 사용자가 없습니다 데이터 적, 적, 적입니다 697 00:30:34,850 --> 00:30:36,730 안녕 제로에 저장? 698 00:30:36,730 --> 00:30:39,610 사실, 심지어 내 임의의 예 전에, 나는의 번호를 시작하지 않았다 699 00:30:39,610 --> 00:30:40,390 제로 바이트입니다. 700 00:30:40,390 --> 00:30:41,540 나는 1에서 시작했다. 701 00:30:41,540 --> 00:30:44,950 나는 세계에서 사람들을 알고 있기 때문에 제로 예약하기로 결정했습니다 702 00:30:44,950 --> 00:30:47,970 누구의 RAM 등의 바이트 특별한 무언가. 703 00:30:47,970 --> 00:30:52,020 >> 그 이유는되고, 언제든지 당신이 원하는 뭔가 잘못 간 것을 신호 704 00:30:52,020 --> 00:30:55,960 주소와 관련하여, 당신은 반환 널 (null) - 그렇지 않으면 0으로 알려진 - 705 00:30:55,960 --> 00:30:59,410 그리고 당신은 거기에 있다는 것을 알고하지 않기 때문에 분명히, 주소, 제로로 데이터를 합법 706 00:30:59,410 --> 00:31:00,400 그 오류를 의미합니다. 707 00:31:00,400 --> 00:31:04,080 그리고 우리는 규칙에 의해 확인 이유 null이 반환 무엇인가 708 00:31:04,080 --> 00:31:06,260 이러한 경우 같은. 709 00:31:06,260 --> 00:31:09,300 >> 우리는 지금 아래로 스크롤 그렇다면,이 단지 다음 몇 가지 오류 검사, 단지의 경우 710 00:31:09,300 --> 00:31:10,610 뭔가 [와 잘못된? 보석?] 711 00:31:10,610 --> 00:31:13,470 모두하고 프로그램을 종료 초기에 반환하여. 712 00:31:13,470 --> 00:31:19,030 이 라인은 이제 다시 작성할 수 있습니다 이 같이, 이것은 무엇을 의미? 713 00:31:19,030 --> 00:31:23,155 왼쪽에 저에게 다른 줄 캐릭터, 그것은 t 전화에 대한 포인터. 714 00:31:23,155 --> 00:31:26,935 나는 바탕으로, T의 내부에 무엇을 저장하고 이 코드 한 줄에? 715 00:31:26,935 --> 00:31:30,950 716 00:31:30,950 --> 00:31:32,170 >> 나는 위치를 저장하고 있습니다. 717 00:31:32,170 --> 00:31:34,742 특히 위치 그 s에 있었다. 718 00:31:34,742 --> 00:31:39,000 사용자가 인사에 입력하고있다 그렇다면 첫 안녕하세요 결국 발생 719 00:31:39,000 --> 00:31:42,567 여기에 다음 번호 123은 얻을에서 돌아올 예정 720 00:31:42,567 --> 00:31:43,810 문자열을 저장할 수 - 721 00:31:43,810 --> 00:31:44,780 우리는 앞서 말한대로 - 722 00:31:44,780 --> 00:31:45,440 의합니다. 723 00:31:45,440 --> 00:31:50,560 >> 지금은 또 다른 포인터를 선언 할 때 문자와 전화 t는 숫자는 무엇입니까 724 00:31:50,560 --> 00:31:53,940 문자에 종료 예정 이야기에 따라 t? 725 00:31:53,940 --> 00:31:55,420 123 그래서. 726 00:31:55,420 --> 00:32:00,310 >> 그래서 기술적으로 지금의 두 t는 정확한를 가리키는 727 00:32:00,310 --> 00:32:02,410 메모리 같은 덩어리. 728 00:32:02,410 --> 00:32:06,140 그래서 지금 할거야 통지 이 프로그램은 버그가 증명. 729 00:32:06,140 --> 00:32:08,820 >> 우선 내가 주장하는거야 인쇄 F, 대문자 730 00:32:08,820 --> 00:32:10,080 문자열의 사본. 731 00:32:10,080 --> 00:32:11,660 그럼 내가 좀 할거야 검사 오류가 발생했습니다. 732 00:32:11,660 --> 00:32:12,160 나는 확실히 만들려고 해요. 733 00:32:12,160 --> 00:32:16,710 하자 문자열 t가에 있는지 확인 최소 길이가 0보다 크면, 734 00:32:16,710 --> 00:32:19,190 그래서 일부 문자가있다 실제로 활용할 수 있습니다. 735 00:32:19,190 --> 00:32:22,840 >> 그리고 당신은이 호출 할 수 앞의 예에서. 736 00:32:22,840 --> 00:32:25,630 상단 2 -에 ctype.h 파일입니다. 737 00:32:25,630 --> 00:32:30,800 T 브래킷 제로 나에게 제로 제공 문자열 t의 문자입니다. 738 00:32:30,800 --> 00:32:34,360 의 동일한 값의 상위 2, 물론, 그것은 대문자로 변환합니다. 739 00:32:34,360 --> 00:32:38,230 >> 그래서 직관적으로,이 라인을 강조 코드의 첫 번째 대문자입니다 740 00:32:38,230 --> 00:32:40,250 T의 편지입니다. 741 00:32:40,250 --> 00:32:44,485 그러나, 직관적으로, 대문자 아니에요 의에서 첫 번째 문자입니다. 742 00:32:44,485 --> 00:32:48,130 당신이 먼저 생각한다면, 내가 뭘 오전 나는이 프로그램을 실행할 때보고 소개 743 00:32:48,130 --> 00:32:54,220 그리고, 원래 모두 인쇄 s 및 소위, 복사, t? 744 00:32:54,220 --> 00:32:55,350 >> 실제로는 동일 할 것입니다. 745 00:32:55,350 --> 00:32:56,600 그리고 왜 그들은 동일한 것으로 건가요? 746 00:32:56,600 --> 00:32:58,970 747 00:32:58,970 --> 00:33:01,020 그들은 가리키는있어 두 정확히 같은 것. 748 00:33:01,020 --> 00:33:01,610 그럼 이렇게하자. 749 00:33:01,610 --> 00:33:03,160 >> 복사 제로한다. 750 00:33:03,160 --> 00:33:04,070 그것은 OK 컴파일합니다. 751 00:33:04,070 --> 00:33:06,500 나에게 복사본 제로를 실행하자. 752 00:33:06,500 --> 00:33:10,110 나에 안녕과 같이 입력하자 모두 소문자로 입력 한 다음 Enter를 누르십시오. 753 00:33:10,110 --> 00:33:16,520 그리고 주장하는 원래의 두 그리고 사본은 참으로 동일합니다. 754 00:33:16,520 --> 00:33:17,920 >> 그래서 정말 여기에서 무슨 일? 755 00:33:17,920 --> 00:33:20,100 내가이 그림을 그냥 그리하자 의 이야기를 756 00:33:20,100 --> 00:33:21,340 약간 다른 방법입니다. 757 00:33:21,340 --> 00:33:26,060 무엇이 정말 아래에 일어나고 내가 뭔가를 선언 후드 758 00:33:26,060 --> 00:33:30,410 문자 시작의, 또는 문자열 S, 내가 포인터를 얻고 - 759 00:33:30,410 --> 00:33:33,090 이는 4 바이트로 발생 CS50 어플라이언스 760 00:33:33,090 --> 00:33:34,410 및 컴퓨터를 많이합니다. 761 00:33:34,410 --> 00:33:36,008 그리고이의를 호출하는거야. 762 00:33:36,008 --> 00:33:39,810 그리고 현재이 알 수없는 값입니다. 763 00:33:39,810 --> 00:33:43,900 >> 당신은 변수를 선언 할 때,하지 않는 한 자신이 거기에 누가 값을 입력 764 00:33:43,900 --> 00:33:44,570 거기에 무엇을 알고있다. 765 00:33:44,570 --> 00:33:48,110 그것은 어떤 임의의 순서의 수 이전 실행에서 비트입니다. 766 00:33:48,110 --> 00:33:52,490 그래서, 코드 내 라인에 들어갈 수행 할 때 문자열 및 다음 반환을 저장 767 00:33:52,490 --> 00:33:54,800 초 값은 어떻게 든 문자열을 - 768 00:33:54,800 --> 00:33:58,520 우리는 결국 얼마나 다시 껍질을 거 문자열 작품은, 어떻게 든을 할당 769 00:33:58,520 --> 00:34:00,480 아마 보인다 배열 이 같은 비트. 770 00:34:00,480 --> 00:34:05,390 H-E-L-L-O, 백 슬래시 제로. 771 00:34:05,390 --> 00:34:09,510 >> 이 주소인지의이 가정하자 123 단지 첫 번째 일관성. 772 00:34:09,510 --> 00:34:13,000 그래서에 문자열을 반환받을 이 라인을 강조, 그것은을 반환 773 00:34:13,000 --> 00:34:15,000 수 우리는 123이다. 774 00:34:15,000 --> 00:34:17,420 그래서 정말 여기의 내부 간다? 775 00:34:17,420 --> 00:34:26,590 >> 음, 정말 무엇을 간다 내부의의 123입니다. 776 00:34:26,590 --> 00:34:29,250 하지만 솔직히, 내가 좀 받고 있어요 이러한 모든 주소에 의해 혼동, 777 00:34:29,250 --> 00:34:30,320 이러한 임의의 숫자의. 778 00:34:30,320 --> 00:34:32,290 123, 124, 127. 779 00:34:32,290 --> 00:34:34,570 그럼 실제로 간단하게 세계는 조금. 780 00:34:34,570 --> 00:34:38,800 >> 우리는 솔직히 포인터에 대해 이야기 할 때에 우리 인간, 누가 도대체​​ 어디에 관심 781 00:34:38,800 --> 00:34:39,870 물건은 메모리에있는? 782 00:34:39,870 --> 00:34:41,080 그것은 완전히 임의의. 783 00:34:41,080 --> 00:34:43,370 그것은 방법에 따라 달라집니다 것 많이는 사용자가 가지고있는 RAM. 784 00:34:43,370 --> 00:34:46,590 그 때 하루에 의존하는 것 당신은 아마 프로그램을 실행하고, 785 00:34:46,590 --> 00:34:48,250 어떤 입력은 사용자를 제공합니다. 786 00:34:48,250 --> 00:34:50,060 우리는 중요하지 않은 세부 사항에 거주입니다. 787 00:34:50,060 --> 00:34:54,230 >> 그래서하자 추상화하고 말을, 이 같은 코드 줄을 실행하면, 788 00:34:54,230 --> 00:34:57,320 문자 스타들 수익을 얻는다 GET 문자열 값입니다. 789 00:34:57,320 --> 00:35:02,720 왜 우리는 대신 우리 그리지 않습니다 그건 것처럼 포인터를 호출 유지 790 00:35:02,720 --> 00:35:04,140 뭔가 가르키는? 791 00:35:04,140 --> 00:35:07,000 그래서 나는 그의 지금 주장 포인터가 - 792 00:35:07,000 --> 00:35:08,480 후드 아래는 주소입니다. 793 00:35:08,480 --> 00:35:11,330 그러나 그것은 단지를 가리키는 의 첫 번째 바이트 794 00:35:11,330 --> 00:35:12,780 문자열이이 반환되고있어. 795 00:35:12,780 --> 00:35:16,710 >> 나는 지금 여기에 코드를 반환하는 경우, 어떤이 줄거야? 796 00:35:16,710 --> 00:35:20,020 자, 이제이 강조 라인, 나는 분명히 또 다른 선언 해요 797 00:35:20,020 --> 00:35:21,070 t라는 변수입니다. 798 00:35:21,070 --> 00:35:25,700 그러나 그것은 또한 포인터, 그래서 나는거야 정확한 이론적으로 그것을 그릴 799 00:35:25,700 --> 00:35:26,710 같은 크기의 상자. 800 00:35:26,710 --> 00:35:28,160 그리고 나는 그것이 t를 호출하는거야. 801 00:35:28,160 --> 00:35:33,500 >> 그리고 지금 우리는 다시 코드로 돌아가 경우, I t는 s의 내부를 저장할 때, 802 00:35:33,500 --> 00:35:36,920 나는 기술적 뭐야 T의 내부에 넣어? 803 00:35:36,920 --> 00:35:39,350 물론 기술적으로,이 번호 123이었다. 804 00:35:39,350 --> 00:35:42,270 그래서 정말 내가 작성되어야한다 이 번호 123. 805 00:35:42,270 --> 00:35:43,900 그러나의이 높은 수준을 보자. 806 00:35:43,900 --> 00:35:48,090 T, 단지 포인터 인 경우, 직관적으로, 단지이다. 807 00:35:48,090 --> 00:35:49,800 그 존재의 전부 그건 거기에 저장됩니다. 808 00:35:49,800 --> 00:35:54,970 >> 이제 마지막으로 흥미로운 라인 코드의 사실에 대해 갈 때 809 00:35:54,970 --> 00:36:00,680 제로 문자를 대문자 t에서, 무슨 일입니까? 810 00:36:00,680 --> 00:36:06,310 물론, T 브라켓 제로는 이제 가리키는 무엇을 문자, 아마? 811 00:36:06,310 --> 00:36:07,460 >> 그것은 시간에 가리키는. 812 00:36:07,460 --> 00:36:08,870 때문에 T 브래킷 제로 - 813 00:36:08,870 --> 00:36:12,490 기억이 오래된 구문입니다. T 브래킷 t는, T 문자열 인 경우 제로 단지 의미 814 00:36:12,490 --> 00:36:15,590 브래킷 제로 제로 점점 의미 그 강도 특성. 815 00:36:15,590 --> 00:36:18,650 정말 의미 그래서 이 배열로 이동합니다 - 816 00:36:18,650 --> 00:36:21,520 그리고 예, 이것은 123 수 있습니다 이 124이 될 수 있습니다. 817 00:36:21,520 --> 00:36:22,790 하지만 모든 상대의 기억. 818 00:36:22,790 --> 00:36:25,640 배열에 대해 이야기 때마다, 우리는이 이야기의 장점 819 00:36:25,640 --> 00:36:27,000 상대 지수. 820 00:36:27,000 --> 00:36:31,120 >> 그리고 이제 우리는 가정 할 수있다 그 T 브래킷 제로 시간이다. 821 00:36:31,120 --> 00:36:35,090 나는 그것에 2 위 전화 그렇다면, 어떤 것이이다 정말 대문자로되어 일을 822 00:36:35,090 --> 00:36:38,290 대문자 H로 소문자 시간 물론 S는 무엇입니까? 823 00:36:38,290 --> 00:36:41,010 그것은 같은 이놈의 문자열 가리키는. 824 00:36:41,010 --> 00:36:44,200 >> 그래서는 일이 있었 모든 것을 이 코드에서 지금까지. 825 00:36:44,200 --> 00:36:45,960 그래서 의미는 무엇인가? 826 00:36:45,960 --> 00:36:48,300 우리는이 두 가지 문제를 어떻게 해결합니까? 827 00:36:48,300 --> 00:36:50,870 우리는 어떻게 실제 문자열 비교합니까? 828 00:36:50,870 --> 00:36:53,720 >> 잘 직관적으로 어떻게 것 두 개의 비교에 대한 이동 829 00:36:53,720 --> 00:36:55,090 진정한 평등의 문자열? 830 00:36:55,090 --> 00:36:58,920 831 00:36:58,920 --> 00:37:00,750 >> 그것은 무엇을 의미 하는가하면 두 문자열은 같다? 832 00:37:00,750 --> 00:37:04,330 명확하지 자신의 주소가 있다는 것을 그 낮은이기 때문에, 메모리와 동일 833 00:37:04,330 --> 00:37:06,590 수준의 구현 세부 사항입니다. 834 00:37:06,590 --> 00:37:08,360 모든 문자는 동일합니다. 835 00:37:08,360 --> 00:37:12,810 그래서 내가 제안하자, 저를 소개하겠습니다 compare.c 버전 하나 836 00:37:12,810 --> 00:37:14,970 여기에, 그래서 비교-1.C. 837 00:37:14,970 --> 00:37:19,590 >> 우리는 여전히를 얻을 내가 제안하자 의라는 포인터, 그리고에 저장 838 00:37:19,590 --> 00:37:20,610 GET 문자열의 값을 반환합니다. 839 00:37:20,610 --> 00:37:21,750 T와 같은 일을하자. 840 00:37:21,750 --> 00:37:23,230 그래서 코드 중 어느 것도 다르지 않습니다. 841 00:37:23,230 --> 00:37:25,420 조금을 추가 할거야 지금 확인 더 많은 오류가 발생했습니다. 842 00:37:25,420 --> 00:37:29,390 그래서 지금 우리가 다시 필링의 일종임을 어떤 문자열 CS50이 레이어 843 00:37:29,390 --> 00:37:33,520 실제로, 우리는 항문해야 확인하고 관하여 우리는 남용하지 844 00:37:33,520 --> 00:37:35,330 널 (null)과 같은 잘못된 값. 845 00:37:35,330 --> 00:37:36,440 >> 그래서 난 그냥 확인하는거야. 846 00:37:36,440 --> 00:37:41,490 의 동등한 NULL을하지 않는 t는되지 않는 경우 동일한 null의 경우, 그것은 우리가 OK입니다 의미합니다. 847 00:37:41,490 --> 00:37:44,460 문자열은 점점 엉망하지 않았다 받으세요 하나 이러한 문자열. 848 00:37:44,460 --> 00:37:51,270 그리고 당신은 아마 지금 추측 할 수있는 STR CMP는 아마도합니까? 849 00:37:51,270 --> 00:37:52,000 문자열을 비교합니다. 850 00:37:52,000 --> 00:37:55,470 >> 당신은 전에 자바 프로그램을했습니다 경우에, 이있는 동등한 방법처럼 851 00:37:55,470 --> 00:37:56,490 문자열 클래스입니다. 852 00:37:56,490 --> 00:37:57,890 하지만이 분들을 위해 전에 프로그램, 853 00:37:57,890 --> 00:37:59,320 이것은 단지 C 함수이다. 854 00:37:59,320 --> 00:38:02,180 그것은에 와서하는 일 파일 string.h에를했다. 855 00:38:02,180 --> 00:38:03,830 이 선언 된 곳이다. 856 00:38:03,830 --> 00:38:05,110 >> 그리고 문자열 비교 - 857 00:38:05,110 --> 00:38:07,530 실제로 그 사용을 잊지 것은, 하지만 그 마음을하지 않습니다. 858 00:38:07,530 --> 00:38:10,470 우리가 할 수있는 기억 사람, 비교를 저어. 859 00:38:10,470 --> 00:38:12,590 그리고이를 가져올 것입니다 리눅스 프로그래머 설명서를 참조하십시오. 860 00:38:12,590 --> 00:38:14,060 그리고, 솔직히 좀 애매이다. 861 00:38:14,060 --> 00:38:15,270 하지만 네, 그 여기에서 볼 수 있습니다. 862 00:38:15,270 --> 00:38:17,570 나는 string.h에 포함해야합니다. 863 00:38:17,570 --> 00:38:20,590 >> 그리고 "설명에 따라 여기있다 문자열 비교 함수는 비교 864 00:38:20,590 --> 00:38:24,560 두 개의 문자열 S1 및 S2. "그리고 S1 과 S2는 분명히 이아르 865 00:38:24,560 --> 00:38:26,120 인수가 전달 된 866 00:38:26,120 --> 00:38:28,650 정말 기억하지 않는 것을 CONST는,하지만 지금은 알 - 867 00:38:28,650 --> 00:38:31,480 때 당신은 이미 이것을 볼지도 모른다 당신은 매뉴얼 페이지를 사용할 수있는 경우에, 당신 868 00:38:31,480 --> 00:38:32,390 모든 것을 가지고 - 869 00:38:32,390 --> 00:38:36,220 그 문자 별은 동의어이다 문자열. 870 00:38:36,220 --> 00:38:40,440 >> 그래서 두 개의 문자열 S1을 비교 S2, 그것은 작은 정수를 반환 871 00:38:40,440 --> 00:38:44,930 보다 작거나 같거나 0보다 큰 S1이 발견되면, 각각 수 872 00:38:44,930 --> 00:38:47,450 보다 작거나 일치하거나, S2보다 큰. 873 00:38:47,450 --> 00:38:51,220 그건 그냥 말하는 매우 복잡한 방법 해당 문자열 반환을 비교 874 00:38:51,220 --> 00:38:55,760 0 2 문자열은 직관적 경우 에 대해 동일한 문자 875 00:38:55,760 --> 00:38:57,120 문자에 대한 문자. 876 00:38:57,120 --> 00:38:59,970 >> 그것은 음수를 돌려줍니다 (존재하는 경우) S, 알파벳가되어있다 877 00:38:59,970 --> 00:39:01,010 t 앞에 와야합니다. 878 00:39:01,010 --> 00:39:05,300 또는 양수하는 경우를 반환 의는 t는 올 예정이다 879 00:39:05,300 --> 00:39:06,170 알파벳. 880 00:39:06,170 --> 00:39:08,360 그래서이 간단한 기능으로, 수 당신은, 예를 들어, 정렬 881 00:39:08,360 --> 00:39:09,770 단어의 전체 무리? 882 00:39:09,770 --> 00:39:13,984 >> 그래서이 새로운 버전에서, 내가 갈거야 가서 compare1를 만들 수 있습니다. 883 00:39:13,984 --> 00:39:15,750 점 슬래시 하나를 비교합니다. 884 00:39:15,750 --> 00:39:18,030 나는 모든 소문자로 안녕하세요를 입력합니다. 885 00:39:18,030 --> 00:39:20,300 나는 안녕하세요를 입력 할거야 다시 모두 소문자로한다. 886 00:39:20,300 --> 00:39:23,340 그리고 다행히 지금은 실현 저도 같은 일을 입력했습니다. 887 00:39:23,340 --> 00:39:27,520 >> 한편,하면 낮은에 안녕을 입력 케이스와 대문자 안녕하세요 888 00:39:27,520 --> 00:39:29,710 그들을 비교, 내가 입력 여러 가지. 889 00:39:29,710 --> 00:39:32,530 때문 만이 주소는 다른, 그러나 우리는 비교하고 890 00:39:32,530 --> 00:39:35,350 또 다시 다른 문자입니다. 891 00:39:35,350 --> 00:39:37,320 >> 우물 하나를 가서 해결하자 이제 다른 문제. 892 00:39:37,320 --> 00:39:41,590 저 버전을 열어 보자 현재 주소 복사 893 00:39:41,590 --> 00:39:42,900 이 문제는 다음과 같습니다. 894 00:39:42,900 --> 00:39:45,650 이 하나 보일 것 좀 더 복잡한. 895 00:39:45,650 --> 00:39:49,320 하지만 당신은 어떤 문제에 대해 생각하면 우리 해결해야 희망이 될 것입니다 896 00:39:49,320 --> 00:39:51,870 지금은 잠시 해제합니다. 897 00:39:51,870 --> 00:39:57,280 >> 그래서 첫 번째 줄, 문자 시작 t에서 쉽게 설명하자면 누군가가 제안 할 수 898 00:39:57,280 --> 00:39:59,450 이 줄은 무슨 의미? 899 00:39:59,450 --> 00:40:01,050 문자 별 t는 일을하는 무엇입니까? 900 00:40:01,050 --> 00:40:06,660 901 00:40:06,660 --> 00:40:07,210 >> 좋아요. 902 00:40:07,210 --> 00:40:09,500 일부 포인터를 만들 메모리에 자리. 903 00:40:09,500 --> 00:40:10,930 그리고 내가 그것을 조금 수정하자. 904 00:40:10,930 --> 00:40:17,180 를 저장할 변수를 선언합니다 메모리에 일부 문자의 주소, 단지 905 00:40:17,180 --> 00:40:18,480 좀 더 적절한 수 있습니다. 906 00:40:18,480 --> 00:40:21,210 >> OK, 이제 오른쪽에, 내가했습니다 이러한 기능 중 하나를 본 적이 907 00:40:21,210 --> 00:40:22,660 이전 malloc에​​. 908 00:40:22,660 --> 00:40:26,980 그러나 그것은 무엇을 의미할까요? 909 00:40:26,980 --> 00:40:28,050 메모리 할당. 910 00:40:28,050 --> 00:40:29,410 메모리 할당. 911 00:40:29,410 --> 00:40:33,050 >> 그래서 우리는 지금까지 밝혀, 정말의 강력한 방법이 없었어요 912 00:40:33,050 --> 00:40:36,210 운영 체제를 묻는 좀 메모리를 제공합니다. 913 00:40:36,210 --> 00:40:39,980 오히려, 우리는 지금이라는 기능을 가지고 바로 이러한 malloc에​​. 914 00:40:39,980 --> 00:40:42,960 이것은 약간의 경우에도 산만 지금 알 수있는 것 915 00:40:42,960 --> 00:40:46,200 두 괄호 사이 단지 숫자가 될 것. 916 00:40:46,200 --> 00:40:48,510 나는 질문에 입력 한 위치를 표시는 숫자가 될 수 있습니다. 917 00:40:48,510 --> 00:40:51,020 >> 그리고 그 숫자는 의미 저에게 10 바이트를 제공합니다. 918 00:40:51,020 --> 00:40:52,320 저에게 20 바이트를 제공합니다. 919 00:40:52,320 --> 00:40:53,820 나에게 100 바이트를 제공합니다. 920 00:40:53,820 --> 00:40:56,500 그리고 malloc을이 위해 최선을 다할 것입니다 운영 체제를 요청할 - 921 00:40:56,500 --> 00:40:57,630 이 경우 리눅스 - 922 00:40:57,630 --> 00:40:59,630 이봐, 그 100 바이트입니다 사용 가능한 RAM의? 923 00:40:59,630 --> 00:41:04,320 이 경우에 저에게 그 바이트를 반환 그중의 주소를 반환 924 00:41:04,320 --> 00:41:06,610 아마도 그 바이트? 925 00:41:06,610 --> 00:41:07,610 하나의 매우 첫번째로 올려주세요. 926 00:41:07,610 --> 00:41:10,460 >> 그래서 여기 너무 - 그리고이 우세 C, 당신이있어 어느 시간에 927 00:41:10,460 --> 00:41:11,680 주소 다루는? 928 00:41:11,680 --> 00:41:15,830 당신은 거의 항상 다루고 최초의 주소, 아무리 큰 929 00:41:15,830 --> 00:41:19,490 당신이되고있는 메모리 청크 말하자면, 다시 주었다. 930 00:41:19,490 --> 00:41:20,880 >> 그래서하자 여기에 다이빙. 931 00:41:20,880 --> 00:41:23,940 내가 어떻게 할당하려 바이트, 정확히? 932 00:41:23,940 --> 00:41:24,080 잘. 933 00:41:24,080 --> 00:41:26,090 의의 문자열 길이 -하자 구체적인 예를 수행합니다. 934 00:41:26,090 --> 00:41:30,700 의 헬로 경우, H-E-L-L-O, 무엇 의의 문자열 길이, 분명? 935 00:41:30,700 --> 00:41:32,010 그래서 다섯이다. 936 00:41:32,010 --> 00:41:34,590 하지만 난 그 이유에 1을 더한 일을 해요? 937 00:41:34,590 --> 00:41:37,700 이유는 6 바이트를 원하는 다섯 대신? 938 00:41:37,700 --> 00:41:38,790 null 문자. 939 00:41:38,790 --> 00:41:41,210 >> 나는이를 떠나고 싶지 않아 특수 null 문자. 940 00:41:41,210 --> 00:41:45,160 때문에여의 복사본을 만들 경우 단지 H-E-L-L-O 수행하지만 난 두지 않는다 941 00:41:45,160 --> 00:41:50,160 그 특수 문자, 컴퓨터 기회, 백 슬래시가없는 수 942 00:41:50,160 --> 00:41:51,730 거기에 나를 위해 제로. 943 00:41:51,730 --> 00:41:55,570 그래서 나는 알아 내기 위해 노력하고있어 경우 복사의 길이는, 내가 생각하는 그 944 00:41:55,570 --> 00:41:59,360 그것은 20 자, 또는 만 난 그냥 일어나지 않을 경우, 긴 문자 945 00:41:59,360 --> 00:42:01,050 백 슬래시 제로에 충돌합니다. 946 00:42:01,050 --> 00:42:05,780 >> 그래서 우리는 6 바이트를 저장해야 H-E-L-L-O, 백 슬래시 제로. 947 00:42:05,780 --> 00:42:07,870 그리고 이것은 단지 슈퍼 항문 수 있습니다. 948 00:42:07,870 --> 00:42:10,700 잊지한다고 가정 무엇 문자의 크기입니다. 949 00:42:10,700 --> 00:42:12,020 우리는 그것의 한 바이트를 말하는 유지합니다. 950 00:42:12,020 --> 00:42:12,860 그리고 일반적이다. 951 00:42:12,860 --> 00:42:15,425 이론적으로, 그것은 뭔가 될 수 다른 Mac 또는에서 서로 다른 952 00:42:15,425 --> 00:42:16,250 다른 PC. 953 00:42:16,250 --> 00:42:19,650 >> 이 연산자 거기 밖으로 그래서집니다 SIZEOF라고하는 당신은을 전달하는 경우 954 00:42:19,650 --> 00:42:22,680 데이터 형식의 이름 - 같은 문자, 또는 int 또는 부유물 - 955 00:42:22,680 --> 00:42:26,930 그것은 얼마나 많은 동적, 당신을 말할 것이다 바이트 문자가 이것에 걸립니다 956 00:42:26,930 --> 00:42:28,090 특정 컴퓨터. 957 00:42:28,090 --> 00:42:31,360 >> 그래서 효과적으로 단지 시간 1 또는 말처럼 958 00:42:31,360 --> 00:42:32,440 모두의 시간은 아무것도하지 않습니다. 959 00:42:32,440 --> 00:42:36,340 하지만, 그냥 슈퍼 항문으로하고 있어요 이럴 경우 문자가 다릅니다 960 00:42:36,340 --> 00:42:40,610 컴퓨터에 대 광산,이 방법에 수학은 항상 확인하는 것입니다. 961 00:42:40,610 --> 00:42:43,720 >> 마지막으로, 아래로 여기가 null 확인 이는 항상 좋습니다 - 다시, 962 00:42:43,720 --> 00:42:44,920 우리는 포인터를 다루고있는 시간입니다. 963 00:42:44,920 --> 00:42:47,520 malloc을주고 할 수 없습니다 경우 저 여섯 부전승 -입니다 964 00:42:47,520 --> 00:42:49,210 가능성,하지만 단지의 경우 - 965 00:42:49,210 --> 00:42:50,730 즉시 하나를 반환합니다. 966 00:42:50,730 --> 00:42:53,290 그리고 지금, 가서 복사 문자열은 다음과 같습니다. 967 00:42:53,290 --> 00:42:57,240 그리고는 익숙한 구문 다른 역할이기는하지만. 968 00:42:57,240 --> 00:43:01,210 >> 내가 가서 문자열을 얻을거야 의 길이와 N에 저장합니다. 969 00:43:01,210 --> 00:43:06,620 그때 나는 내가 동등한에서 반복 할거야 ,와 N 등까지 제로 970 00:43:06,620 --> 00:43:08,410 보다 크거나 같음. 971 00:43:08,410 --> 00:43:13,540 각 반복에, 내가 넣어 수 있도록 i 번째에있는 s의 i 번째 문자 972 00:43:13,540 --> 00:43:15,380 T의 문자입니다. 973 00:43:15,380 --> 00:43:18,190 >> 그래서 정말 아래에 일어나고 여기에 후드? 974 00:43:18,190 --> 00:43:22,140 그럼이 경우, 예를 들어, s의 - 975 00:43:22,140 --> 00:43:26,400 나는 단어를 H-E-L-L-O에서 입력 한 백 슬래시 제로가있다. 976 00:43:26,400 --> 00:43:29,020 그리고 또,이들 여기를 가리키는 것입니다. 977 00:43:29,020 --> 00:43:30,830 그리고 지금 여기에 t입니다. 978 00:43:30,830 --> 00:43:34,860 >> 그리고 이것은 지금 가리키는 메모리의 복사, 맞죠? 979 00:43:34,860 --> 00:43:37,340 malloc에​​ 저에게 전체를 제공하고 있습니다 메모리 덩어리. 980 00:43:37,340 --> 00:43:41,440 나는의 처음 모르겠어요 이러한 위치의합니다. 981 00:43:41,440 --> 00:43:44,340 그래서 이들과 같은 생각하는거야 물음표의 전체 무리. 982 00:43:44,340 --> 00:43:50,190 >> 하지만 최대한 빨리 시작할 때 0에서 반복 S, T의 길이를 통해에 983 00:43:50,190 --> 00:43:52,790 브래킷 제로 T 브래킷 1 - 984 00:43:52,790 --> 00:43:55,080 나는 지금 놓을 게요 오버 헤드 - 985 00:43:55,080 --> 00:44:04,190 T 브래킷 제로의 부류 제로 의미 내가 복사 할 거라는 986 00:44:04,190 --> 00:44:09,875 여기 반복적으로 H, E-L-L-O. 플러스는 플러스를했기 때문에 987 00:44:09,875 --> 00:44:12,370 1 백 슬래시 제로. 988 00:44:12,370 --> 00:44:19,060 >> 그래서 지금 비교-1.C의 경우, 결국, 나는 밖으로 인쇄하는 경우 989 00:44:19,060 --> 00:44:24,760 T의 대문자, 우리는해야한다 들 변하지 것을 알 수있다. 990 00:44:24,760 --> 00:44:26,090 내가 지금 가서이 작업을 수행 할 수 있습니다. 991 00:44:26,090 --> 00:44:28,630 그래서 COPY1을합니다. 992 00:44:28,630 --> 00:44:30,860 점 슬래시 COPY1. 993 00:44:30,860 --> 00:44:33,670 나는 안녕하세요, 입력을 입력 할거야. 994 00:44:33,670 --> 00:44:37,430 지금 만 사본을 통지 대문자로되어 있습니다. 995 00:44:37,430 --> 00:44:40,890 나는 정말이 있기 때문에 두 개의 메모리 덩어리. 996 00:44:40,890 --> 00:44:44,390 >> 불행하게도, 당신은 꽤 작업을 수행 할 수 있습니다 여기에 나쁜 꽤 위험한 확인해보세요. 997 00:44:44,390 --> 00:44:49,290 내가 지금 여기에 예제를 당겨 보자 그것은 우리에게 몇 가지의 예를 제공합니다 998 00:44:49,290 --> 00:44:51,540 다른 라인. 999 00:44:51,540 --> 00:44:56,040 그래서 그냥 직관적으로, 여기에 첫 번째 줄 코드는 int 별 X가 선언된다 1000 00:44:56,040 --> 00:44:57,340 X라는 변수. 1001 00:44:57,340 --> 00:44:58,810 그리고 데이터 유형은 무엇입니까 이 변수? 1002 00:44:58,810 --> 00:45:01,820 1003 00:45:01,820 --> 00:45:04,290 그 변수의 데이터 유형은 무엇입니까? 1004 00:45:04,290 --> 00:45:06,980 즉, 클리프 행어되지 않았습니다. 1005 00:45:06,980 --> 00:45:08,350 >> 데이터 타입은 INT 스타입니다. 1006 00:45:08,350 --> 00:45:12,600 그래서 무엇을 의미합니까? 여기서 x는 것 INT의 주소를 저장합니다. 1007 00:45:12,600 --> 00:45:13,520 그렇게 단순 한. 1008 00:45:13,520 --> 00:45:16,220 Y는을 저장하는 것입니다 INT의 주소입니다. 1009 00:45:16,220 --> 00:45:18,390 세 번째 라인은 무엇인가 코드가 어때? 1010 00:45:18,390 --> 00:45:21,850 그것은 할당 얼마나 많은 바이트 가능성이 높습니다? 1011 00:45:21,850 --> 00:45:22,350 네. 1012 00:45:22,350 --> 00:45:25,460 때문에 INT의 크기입니다 일반적으로 네, 네 malloc에​​가 있습니다 1013 00:45:25,460 --> 00:45:29,950 나를 덩어리의 주소를 다시 메모리는, 그 바이트의 첫 번째는 1014 00:45:29,950 --> 00:45:32,110 X 지금 저장됩니다. 1015 00:45:32,110 --> 00:45:34,410 >> 이제 우리는 신속하게 조금 이동하고 있습니다. 1016 00:45:34,410 --> 00:45:35,760 스타 X는 무엇을 의미? 1017 00:45:35,760 --> 00:45:38,480 1018 00:45:38,480 --> 00:45:42,590 그것은 그 주소로 이동을 의미합니다 무엇을 거기에 번호 넣어? 1019 00:45:42,590 --> 00:45:43,870 하여 숫자가 42을 넣어. 1020 00:45:43,870 --> 00:45:47,590 스타 Y는 Y에 무엇 이동 수단 거기에 숫자 13을 넣어. 1021 00:45:47,590 --> 00:45:48,600 >> 그러나 분을 기다립니다. 1022 00:45:48,600 --> 00:45:51,640 순간 Y에 무엇이 있는가? 1023 00:45:51,640 --> 00:45:54,950 어떤 주소는 y를 저장인가? 1024 00:45:54,950 --> 00:45:55,770 우린 몰라? 1025 00:45:55,770 --> 00:45:59,230 우리는 한 번 할당을 사용하지 않은 Y를 포함하는 연산자입니다. 1026 00:45:59,230 --> 00:46:03,370 그래서 Y는 두 번째 줄에 선언 코드는 어떤 쓰레기 값이 큰 1027 00:46:03,370 --> 00:46:04,760 물음표 말하자면. 1028 00:46:04,760 --> 00:46:07,230 그것은 무작위로 지적 될 수있다 메모리에 아무것도, 그 1029 00:46:07,230 --> 00:46:08,340 일반적으로 나쁘다. 1030 00:46:08,340 --> 00:46:13,540 >> 그래서 곧 우리가 그 라인을 쳐서 스타 y를, 나쁜 짓을 13과 동일 1031 00:46:13,540 --> 00:46:17,220 아주 나쁜 일이 약 빙키에 발생합니다. 1032 00:46:17,220 --> 00:46:25,810 그래서 결국 무슨 일이 일어나고 있는지 살펴 보자 이 분 여기 빙키 일어나고 1033 00:46:25,810 --> 00:46:26,200 또는 이렇게 본다. 1034 00:46:26,200 --> 00:46:26,490 >> [동영상 재생] 1035 00:46:26,490 --> 00:46:26,745 >> - 안녕, 빙키. 1036 00:46:26,745 --> 00:46:27,000 일어나. 1037 00:46:27,000 --> 00:46:29,296 그것은 포인터 재미를위한 시간이다. 1038 00:46:29,296 --> 00:46:30,680 >> - 뭐라 구요? 1039 00:46:30,680 --> 00:46:31,980 포인터에 대해 알아? 1040 00:46:31,980 --> 00:46:34,010 아, 좋아요 ~. 1041 00:46:34,010 --> 00:46:37,220 >> - 그럼, 시작하는, 우리는 것 같아요 몇 포인터를 필요로하는 것. 1042 00:46:37,220 --> 00:46:37,930 >> -OK. 1043 00:46:37,930 --> 00:46:41,650 이 코드는 두 개의 포인터를 할당 이는 정수를 가리킬 수 있습니다. 1044 00:46:41,650 --> 00:46:43,760 >> -OK, 음, 나는 두 개의 포인터를 참조하십시오. 1045 00:46:43,760 --> 00:46:45,850 하지만 그들은되지 않는 것 같습니다 무엇을 가리키는. 1046 00:46:45,850 --> 00:46:46,490 >> - 맞아. 1047 00:46:46,490 --> 00:46:48,630 처음에 포인터는하지 않습니다 무엇을 가리 킵니다. 1048 00:46:48,630 --> 00:46:51,700 그들은 가리 것들이이라고 pointees, 최대를 설정은 1049 00:46:51,700 --> 00:46:52,850 별도의 단계. 1050 00:46:52,850 --> 00:46:53,740 >> - 오, 그래, 맞아. 1051 00:46:53,740 --> 00:46:54,500 나는 그것을 알고 있었다. 1052 00:46:54,500 --> 00:46:56,270 pointees 별도입니다. 1053 00:46:56,270 --> 00:46:58,553 그렇다면 당신은 pointee를 할당합니까? 1054 00:46:58,553 --> 00:46:59,480 >> -OK. 1055 00:46:59,480 --> 00:47:03,707 물론,이 코드는 새로운 정수를 할당 pointee,이 부분은 X를 설정 1056 00:47:03,707 --> 00:47:05,520 그것을 가리 키도록. 1057 00:47:05,520 --> 00:47:06,760 >> - 이봐, 잘 보인다. 1058 00:47:06,760 --> 00:47:08,520 그래서 뭔가를합니다. 1059 00:47:08,520 --> 00:47:09,530 >> -OK. 1060 00:47:09,530 --> 00:47:14,110 나는 역 참조 포인터 x를 저장할 수 있습니다 그 pointee에 번호 42. 1061 00:47:14,110 --> 00:47:17,660 이 트릭을 위해, 나는 내 마법이 필요합니다 역 참조의 지팡이. 1062 00:47:17,660 --> 00:47:20,695 >> 역 참조의 마법 지팡이? 1063 00:47:20,695 --> 00:47:22,632 어, 정말이다. 1064 00:47:22,632 --> 00:47:24,620 >> -이 코드가 어떻게 생겼는지입니다. 1065 00:47:24,620 --> 00:47:27,526 난 그냥 번호를 설정하고 있습니다 - 1066 00:47:27,526 --> 00:47:28,250 >> - 이봐 요. 1067 00:47:28,250 --> 00:47:29,680 거기 간다. 1068 00:47:29,680 --> 00:47:34,520 그래서 x는 다음에 역 참조를하고 그 pointee에 액세스하는 화살표. 1069 00:47:34,520 --> 00:47:36,690 이 경우, 거기에 42을 저장합니다. 1070 00:47:36,690 --> 00:47:40,890 이봐, 번호를 저장하기 위해 그것을 사용하십시오 다른 포인터를 통해 13 일 y를 입력합니다. 1071 00:47:40,890 --> 00:47:42,125 >> -OK. 1072 00:47:42,125 --> 00:47:46,810 난 그냥 y로 여기에 갈거야 숫자 13이 설정됩니다. 1073 00:47:46,810 --> 00:47:50,890 다음의 지팡이를 가지고 역 참조 단지 - 1074 00:47:50,890 --> 00:47:52,430 우와! 1075 00:47:52,430 --> 00:47:53,030 >> - 오, 이봐. 1076 00:47:53,030 --> 00:47:54,610 그것은 작동하지 않았다. 1077 00:47:54,610 --> 00:47:58,200 빙키 말하자면, 나는 생각하지 않는다 Y를 역 참조하는 것은 좋은 생각이다 1078 00:47:58,200 --> 00:48:01,370 pointee을 설정하기 때문에 별도의 단계입니다. 1079 00:48:01,370 --> 00:48:03,460 그리고 나는 우리가 이제까지했다고 생각하지 않습니다. 1080 00:48:03,460 --> 00:48:03,810 >> - 흠. 1081 00:48:03,810 --> 00:48:05,160 좋은 지적. 1082 00:48:05,160 --> 00:48:07,410 >> - 그래, 우리는 포인터 y를 할당. 1083 00:48:07,410 --> 00:48:10,045 그러나 우리는 그것을 설정하지 pointee을 가리 킵니다. 1084 00:48:10,045 --> 00:48:10,490 >> - 흠. 1085 00:48:10,490 --> 00:48:12,170 매우 관찰력. 1086 00:48:12,170 --> 00:48:13,790 >> - 이봐, 당신은 찾고 거기에 좋은, 빙키. 1087 00:48:13,790 --> 00:48:16,920 당신은 Y 포인트 있도록 문제를 해결할 수 X 같은 pointee에? 1088 00:48:16,920 --> 00:48:17,810 >> - 물론. 1089 00:48:17,810 --> 00:48:20,300 나는 내 마법 지팡이를 사용합니다 포인터를 지정합니다. 1090 00:48:20,300 --> 00:48:22,240 >> -되어있는이 될 것 전에 같은 문제? 1091 00:48:22,240 --> 00:48:22,665 >> - 아니. 1092 00:48:22,665 --> 00:48:24,300 이 pointees를 만지지 않습니다. 1093 00:48:24,300 --> 00:48:27,880 그냥 가리 한 포인터를 변경 또 같은 일을. 1094 00:48:27,880 --> 00:48:28,970 >> - 오, 내가 참조하십시오. 1095 00:48:28,970 --> 00:48:31,730 X 같은 장소에 지금 y를 가리 킵니다. 1096 00:48:31,730 --> 00:48:32,450 그래서 기다립니다. 1097 00:48:32,450 --> 00:48:33,490 이제 Y가 고정되어 있습니다. 1098 00:48:33,490 --> 00:48:34,630 그것은 pointee 있습니다. 1099 00:48:34,630 --> 00:48:36,520 그래서 당신은 지팡이를 시도 할 수 있습니다 다시 역 참조 1100 00:48:36,520 --> 00:48:39,200 이상 13 보낼 수 있습니다. 1101 00:48:39,200 --> 00:48:39,840 >> -OK. 1102 00:48:39,840 --> 00:48:41,570 여기 간다. 1103 00:48:41,570 --> 00:48:42,870 >> - 이봐, 봐. 1104 00:48:42,870 --> 00:48:44,320 이제 Y의 작품을 역 참조. 1105 00:48:44,320 --> 00:48:47,020 그리고 포인터가 공유되기 때문에 하나 pointee, 그들은 1106 00:48:47,020 --> 00:48:48,585 모두 13를 참조하십시오. 1107 00:48:48,585 --> 00:48:49,040 >> - 그래. 1108 00:48:49,040 --> 00:48:49,670 공유. 1109 00:48:49,670 --> 00:48:50,380 뭐든간에. 1110 00:48:50,380 --> 00:48:52,290 그래서 우리는 지금 스위치 장소를가는거야? 1111 00:48:52,290 --> 00:48:52,970 >> - 오, 봐. 1112 00:48:52,970 --> 00:48:54,150 우리는 시간이 없어. 1113 00:48:54,150 --> 00:48:55,200 >> -하지만 - 1114 00:48:55,200 --> 00:48:57,060 >> - 그냥 세 가지를 기억 포인터 규칙. 1115 00:48:57,060 --> 00:49:00,100 번호를 하나의 기본 구조 당신이 포인터를 가지고있다. 1116 00:49:00,100 --> 00:49:02,170 그리고 pointee을 통해 가리 킵니다. 1117 00:49:02,170 --> 00:49:04,160 하지만 포인터와 pointee 별도이다. 1118 00:49:04,160 --> 00:49:06,460 그리고 일반적인 오류에있다 포인터를 설정하되 1119 00:49:06,460 --> 00:49:08,540 pointee을 부여하는 것을 잊지. 1120 00:49:08,540 --> 00:49:12,460 >> 둘째, 포인터 역 참조가 시작 포인터에서 다음과 그것 1121 00:49:12,460 --> 00:49:14,570 화살표에 그것의 pointee에 액세스합니다. 1122 00:49:14,570 --> 00:49:18,640 우리 모두가 알다시피, 이것은 단지 작동하는 경우가 로 돌아 오면 pointee입니다 1123 00:49:18,640 --> 00:49:19,790 번호 하나를 지배. 1124 00:49:19,790 --> 00:49:23,670 >> 셋째는, 포인터 할당합니다 하나의 포인터 변경이 가리 키도록 1125 00:49:23,670 --> 00:49:25,850 다른 포인터와 같은 pointee. 1126 00:49:25,850 --> 00:49:27,840 그래서 할당 한 후, 두 포인터는 것 1127 00:49:27,840 --> 00:49:29,430 같은 pointee을 가리 킵니다. 1128 00:49:29,430 --> 00:49:31,600 가끔이 공유라고. 1129 00:49:31,600 --> 00:49:33,430 그리고 정말 그것이 전부입니다. 1130 00:49:33,430 --> 00:49:33,840 이제 안녕히. 1131 00:49:33,840 --> 00:49:34,300 >> [END 동영상 재생] 1132 00:49:34,300 --> 00:49:36,940 >> DAVID 마란 : 포인터에 따라서 더 빙키 다음 주에 더 많은. 1133 00:49:36,940 --> 00:49:38,190 우리는 월요일에 당신을 볼 수 있습니다. 1134 00:49:38,190 --> 00:49:42,187