스피커 : OK, 그래서 당신이 그것을 믿지 않을 것이다, 하지만 지난 주 월요일에, 피어스, I 지하에 내려했다. 나는 피어스에 갈 수 없다. 그리고 나는 다시 돌아 가지 않을거야 때문에 나는 혼자 내 물건을 왼쪽으로 같은 5 분 누군가 내 컴퓨터 내를 훔쳐 내 가방 중 전화. 어느 내가 돌아 왔을 및 의미 미만의 일주일 후 그것은 다시 도난있어. 그리고 그것은 켜져있어 - 내 아이폰은 계속 찾기 인정합니다. 그래서 장려하기 위해 계속 당신이 그것을 사용하지. 이것은 일단 온, 그리고 MIT에 있었다 을 추천 분후 및 사람 보여이 전화 번호를 호출 내 AT & T 통화 로그의 최대. 그래서 전화, 온라인으로 가서 그 전화 수, 그리고이 똑바로 갔다 스페인어로 자동 응답. 그리고 그 이후로 들어 본되지 않았습니다. 그래서 나는 새를 얻을 수 있었다 컴퓨터와 휴대 전화. 나는 알고있다. 그래. 그러나 너희들은에 칩하려는 경우 내 이 후 컴퓨터 기금, 그 이유 여기 당신을 요청했습니다. 농담. 하지만 그건 정말 슬픈 외상이었다. 그러나 이제 다시, 그리고 그 이유를 P 세트 (8)는, 너무 오래 걸려서 때문에 나는 컴퓨터를하지 않았다. 그리고 누군가가 훔친. 그리고 묻는 이메일로 전송하면 그들은 것 등급 당신의 P-설정 8. 그러나 그들은 아무 말했다. 그리고 내가 좋아하는, 내가있을 수 있었다 내 컴퓨터에 다시? 그리고 그들은 아니, 같은입니다. 농담. OK. 이것은 우리의 마지막 부분입니다, 나는이 우리는 세 가지가 - 몇 의제에 대한 것들. 우리는 조금 이야기 할 것입니다 Q 가이드에 대해. 그럼 우리가 15을 보낼거야 멋진 데모에 분. 말 그 다음 우리는 모든거야 작별 인사를 서로. 당신은 정말 당신의 컴퓨터를 필요로하지 않는다 또는 펜이나 종이 메모를하거나합니다 함께 따라. 당신은 당신의 컴퓨터를 사용하는 경우 그래서 난 가정 까지, 당신은 페이스 북에서입니다. 그냥 말. 당신은 작성하지 않는 한 처음 Q 가이드. Q 가이드가 열려 있습니다. 당신은 그것에 대해 이메일을 가졌다. 모든 질문 물건은에 제출하면 연말, 나는 모두를 얻을 수 모두에서 점수 Q 코멘트 누가 나에게 피드백을 제공하기 위해 선택합니다. 그래서 당신은 Q에 갈 때 - 이 작업을 수행 할 수 있는지 모르겠어요, 제프, 당신은이고 확장 학생 때문이다. 하지만 당신이하지 않은 경우는, Q에 갈 때 전에 그것을 한, 당신은 선택하여 데이비드 마란입니다 교사. 당신은 그 작업을 수행해야합니다. 그리고 당신은 TF가를 선택할 수 있습니다. 그리고 당신은 많은 사람을 선택할 수 있습니다 TF가 당신이 원하는대로. 그러나 우리 (60)이있다. 당신은 모두를 선택할 필요가 없습니다. 당신은 저를 선택, 또는 선택할 수 있습니다 몇 다른 사람, 당신이 원하는 경우에 뿐만 아니라 그들에게 피드백을 제공합니다. 그리고 당신은 모든 이들의 점수를 얻을 다른 축, 그리고 당신은 떠날 수 그 피드백. 그리고 한 달 후 같은, 나는 모든 피드백을 얻을 수 있습니다. 그냥 의견을 같이 갔었습니다 나는 학기 내내 저를주는 그 모두를 읽으십시오. 그리고 정말 도움이, 그리고 그것을하는 데 도움이 나를 교사로와로 성장 개인. 그래서, 그것을 할 시간이 걸릴하시기 바랍니다. 우리는 여기에있을거야 삼십분 동안을. 당신이 원하는 경우,이 말에, 너무 5 분 소요, 그냥 작성 Q, 그것은하지 않기 때문에 그보다 더 많은 시간. 즉, 당신은 또한 멋진, 그리고 것 다시 더 빨리 성적을 얻을 경우 당신은 질문을 작성 그래서 당신의 대부분은 그 전에했던 - 또는 아니, 당신의 약 절반 그 전에를했다. 하지만 신입생 인 경우에, 그게 바로 이거 야. 그것은 모든 클래스에 대해 동일해야합니다. 해. 그것은 5 분 걸립니다. 또한, 당신이 조금 심각 할 경우, 즉, 최악의 일이 아니다 세계에서, 때문에 확실히 심각하게 가지고 간다. 그래서 만약 당신이 나에게 웃는 얼굴을 남겨 두는 경우에, 나는 그것을 감사합니다. 그러나 나는 또한 감사하겠습니다 만약에 당신 더 웃는 얼굴보다 저를 떠났다. 그러나 그것은 당신에게 달려 있습니다. 난 당신을 말할 수 없다 - 또는 큰 웃는 좋아 자본 D. 그 것에 직면 더 나은합니다. 당신이 경우 OK, 그 질문에 내가 가진 전부이다 질문이, 당신은 요청할 수 있습니다 나, 그러나 단정 꽤. 다만, 기입 해주십시오. 정말 감사합니다, 그것은 나에게 많은 것을 의미합니다. OK, 이것은 우리가 보낼 거냐 15 분 겪고. 내가 당신에게 몇 가지 코드를 보여 드리겠습니다. 나는 이것이 정말 멋진 생각 이것은 더 저를 얻었다 컴퓨터 과학에 흥분. 그래서 나는 그것을 할 것이라는 점을 희망한다 같은 당신 모두를위한. 우리는 열어 가고있다 -이 모든 코드는 나중에 당신에게 보내드립니다. 그러나 우리는 단지 열거야 - 내 단말기에있어 - 우리는이 프로그램을 열거야 [이라고? MySum. ?] 모두가 그것을 읽거나 수 나는 그것이 더 큰해야? 아무도 나에게 말할 수있는이 코드는 것 나는 그것을 실행하거나, 어떤이 경우 수행 나는 그것을 실행할 때 프로그램을 할 것인가? [? AVI,?] 당신은 무엇을 생각 하는가 그것은 할거야? 마침 씹는. 당신과 이야기해서는 안 당신의 입을 열고. 청중 : 그것은 무리의를 가지고 있는가 인수는, 반환 그들의 합계를 찾을 수 화하고 그것을 인쇄? 아니면 두 개의 인수에 취해, 다음은 [들리지 않습니다. 그리고, 그것은 출력합니다 어떤 결과는 다음과 같습니다. 스피커 닫기 정말 가깝습니다. 누구에 추가 할 [? 어떤 아비는?]라고? 당신은이 프로그램을 제공 할 필요가 있는가 명령 줄 인수? 청중 : 호 스피커 : 호 당신이 그것을주지 않으면 어떻게됩니까 명령 줄 인수? 난 그냥 점 슬래시 MySum 물품. 대상 : 1 더하기 2는 3과 같습니다. 스피커 : 1 더하기 2는 3과 같습니다. 그리고 그 출력됩니다. 그게 바로 그렇습니다. 당신은 인쇄 F를 볼 수 있습니다 하단의 라인. 그것은 A, B를 인쇄하고 있습니다 다음 및 B의 합. 그리고 당신이 가정 추측 합이 제대로 작동합니다. 좋은 가정. 확인을하고, 무슨 일이 있으면 어떤 인수를 포기? [? 마누? ?] 청중 : 그것은 추가 할 것입니다 무엇 첫 번째 인수는 B이다. 또는 2, 죄송합니다. 스피커 : 오른쪽, 2. 아무도 strtol은이 무엇을 알고 있나요? 그것은 기본적으로 atoi와 있어요. atoi와 사실의 멋진 버전입니다 - 또는 strtol 함수의 간단한 버전입니다. 그러나 실제로는 strtol 함수를 사용합니다. 내가 원하는 때문에 나는 그것을 발견 atoi와 같은 다음 때 , 여기 atoi와 아래로 읽었다. 그리고 "이 문제를 발견 strtol은 "같은입니다. 그래서 기본적으로 위해 atoi와의 모든 의도와 목적. 그리고 당신은 심지어 널 (null)과 10 사용을 참조하십시오. 이것은 실제로 당신이 문자열을 할 수 있습니다, 그리고 숫자로 돌려, 선택 당신은 그것을 안으로 무엇을 원하는 기본 그래서이 바로 여기에 기본 10입니다. 나는, 소수점 두 기초 할 수 있었다 16 진수 기본 16. 꽤 멋지다. 그러나 길고도 짧은 이야기,이 두 가지를합니다 숫자와 함께 추가합니다. 그래서 그것을 실행하자. 그리고 당신도, 알 수 있습니다 몇 가지가 있습니다 - 그래서 나는 여기 메이크를 가지고 있고, 당신이 그것을 열 경우, 몇 가지 당신은 다른 알 수 있습니다. 특히,이 인수 여기, 당신이 아마 그 전에 보지 못했다. 일반적으로, 우리는 일을 컴파일 대시 제로, 제로와 함께. 제로, 제로 돌진하지 않는 것을 의미 어떤 최적화 컴파일러. 시도하고 아무것도 공상 확인하지 마십시오 더 빨리 실행 무엇을 만들거나 가져 필요한 변수를 제거. 전혀 코드를 최적화하지 마십시오 나는 세 번째 수준에 대한 부탁 해요 최적화. 그래서 내가 할 컴파일러를 부탁 해요 최적화의 많은. 당신은 메이크 그것을 바꿀 수있는 경우 당신이 원하는 경우,이 코드가 다른 물건을 본다. 우리는 두 번째에 표시 될거야. 그래서 우리는 내 합계 1 플러스 2 플러스 3를 실행합니다. 누군가가 나에게 두 개의 인수를 제공합니다. 청중 : 4, 5. 스피커 : 4, 5. 감사합니다. 좋아, 그것을 작동합니다. 다른 좋은 인수는 무엇입니까 이 작동하는지 확인하기 위해 시도? 누군가? 청중 : 0. 스피커 : 0? 청중 : 음 3. 스피커 : 그것은 작동합니다. 그러나 사람들은 좋은 선택이었다. OK, 그래서 여기에 다시 가자. 이 mysum.c입니다. 당신은 무언가가 거기에 또한 알 수 있습니다 sumfunction.c했다. 그리고 이것은 오, 뭔가가 말한다 sumfunction.c에 정의되어 있습니다. 여기에이 파일을 포함하지 않는다 내가 할 필요가 없기 때문에. 내가 컴파일 할 때하지만, 그것을에 연결 하는 당신이 나타났습니다. 의는 스크롤 할 수 있습니다. 우리가 mysum, 권리를 컴파일 할 때 우리는 보았다 거기에, 우리의 이진에 연결 sumfunction.o. 그리고 헤더 파일을 필요로하지 않는다 물론,이 때문에 함수 선언. 그래서 날카로운 일반적으로 그냥 둔다 포함 함수 선언. 여기에 그냥 똑바로 넣었습니다 코드. 그래서 내가해야 링크입니다 이진,하는 내가. 무엇에 대한 추측 sumfunction.c에? 내가 쓴 어떤 코드 sumfunction.c에? 청중 : [청취]. 스피커 :일까요? 그래? 청중 : 내가 생각하는 정의 일부 [청취]. 스피커 : 예. 그래서 INT 쓰기 INT의 합을. 나는이 줄을 작성하고, 그 때 나는 열려 중괄호는 중괄호를 마감했다. 당신은 내가 그 안에 쓰기에 대해 어떻게 생각하십니까 그 함수에서 중괄호,? 그래? 청중 : 반환은 동일합니다. 프로세서 : 그건 정말 좋은 생각입니다. [누구 생각? 마누는?] 괜찮습니까? 그것은 플러스 B를 반환 말한다. OK, 모든 사람. [? Akshar?] 여러분은 무엇입니까? 정말? OK. 무엇? 청중 : 당신이 잘못을 철자. 스피커 : 아니,하지 않았다. 그래, 그냥 농담. 당신이 옳아 요. 즉 것을 정확하게이다. 그것은 플러스 B를 반환합니다. 그건 이해가 많이 있습니다. 자, 여기로 돌아 가자. 우리는 어떻게 헤더 참조 - 즉, 반환 형식입니다. 기억하십시오, 우리는 그 날 하나를 본 적이 함수의 반환 형식 만 간다 INT 함수의 이름 앞에. 자, 내가 INT를 작성했습니다. 이 경우 어떤 일이 발생할까요이있는 경우 기능, 나는 INT를 작성하지 않지만 나는 부호 쓰기? 차이는 전혀 생각 되 부호는 양 대표 정수 및 INT는 할 수있다 양 또는 음. 그래서 수익을 변경했습니다 이 함수의 유형입니다. 이 코드는 일치하지 않습니다 이 수익률은 여기에 입력합니다. 이 경우 어떤 일이 발생할까요 내가 컴파일 할 때?보기 당신은 나에게 소리한다. 아니 고함 없습니다. 내가 프로그램을 실행할 때 어떻습니까? 의 0 네거티브 전에하자 3, 또는 음 1. 아직 내 말은, 비록 작동 그것은 부호없는 정수를 반환하는 것. 분명히 그것은 반환하지 않는 것 부호없는 정수입니다. 그것은 정수를 반환하는 것. 그것은 음의 1을 반환하는 것. OK, 이상 하네. 내가 갈 경우 약 여기에 해당합니까? 그래서 나는 모든 것을 변경했습니다 int에서 서명합니다. 그것은 단지 부호없는 정수를 취할 수 있습니다. 그러나 우리는 여전히 실행할 수 있습니다 생각하십니까? 청중 : 네. 스피커 : 그것은 것입니다. 그건 미친 짓이야. 그리고 우리는 명확하게 할당 전달 정수, 우리는 서명 된 두 가지를 전달할 수 있습니다 정수, 그것은 여전히​​ 작동합니다. 왜 아직도 오클라호마, 어떤 아이디어 작동, 또는 무슨 일이야? 그래, 제프. 청중 : 그것은 할 수있는 뭔가가 당신의 최적화와 당신 강조했다. 스피커 : 호 우리는 최적화를 변경할 수 있습니다, 그것은 여전히​​ 작동합니다. 나는 당신을 위해 그렇게 할 수 있지만 - 청중 : 자네 말 할게요. 스피커 : 네. 당신이 바로 여기에 메이크 파일을 열 경우, 나는 최적화를 변경했습니다. 그래서 당신은 대시 제로, 제로를 할 수 있습니다. 그것은 여전히​​ 작동합니다. 다른 생각? 너희들은 모두 그렇게 작동 할 것으로 예상 이유는 무엇입니까 당신은 일을 기대? 아니? 침묵. OK. 나는 일곱 초 기다려야합니다, 나는 질문을하기 때문이다. 그래서 시원한 C에 대한 것, 그리고 당신은했습니다 당신 - 아마 이전에 경험 이 세력에게이 없을 수 있습니다 이번이 처음. 하지만 모두가 알다시피, 내가 쓸 때 C에서 뭔가, 그와 같은 저장하지 않습니다 이 컴퓨터에. 그것은 1과 0으로 저장 있어요. 그것은 어셈블리 코드를 C 코드에서갑니다. 전에 누군가가 어셈블리 코드를 볼 수있다, 기계 어셈블리 코드? 우리는 두 번째로 살펴 보겠습니다. 그것은 어셈블리 코드를 C 코드에서갑니다. 그리고 너희들은 단계를 알고 컴파일. 당신은 퀴즈 하나 그 기억했다 다음 퀴즈 제로에 코드를 작성하기 만하면됩니다. 대부분의 사람들은 잘못되었다. 너희들은 못을 박았다 생각합니다. 하지만, 너희들은 최고 섹션입니다 퀴즈에 대한, 그런데. 최고입니다. 그것은 당신을 해치지 않을 것입니다. 걱정하지 마십시오. 하지만 정말 멋지다. 잘 했어. 따라서 어셈블리 언어로 이동하고, 다음은 1과 0으로 이동합니다. 그리고 1과 0은에 저장됩니다 컴퓨터, 그것은에 저장 무엇 a.out의, 또는이 경우에는, 실행 파일. 컴퓨터는 1과 0을 실행합니다. 오른쪽? 우리는 전에이를 배웠다. 그래서 좋은 점은,이 서명되지 아이디어, 유형의 아이디어는 서명되지 않은 정수 기타 등등은, 등등, 그건 여기에 C 언어입니다. 사람들은 존재한다. 하지만 형식은 존재하지 않는다 1과 0. 유형이라도 실제로 존재하지 않는다 어셈블리 언어 수준. 그래서 C에 존재 뭔가 세계는하지만 컴퓨터에 존재하지 않습니다 세계 또는 프로세서의 세계. 즉, 일부 추상화의 그 C 언어를 만들기 위해 포함 시켰 우리 쉽게 살고있다. 그래서 하루의 끝에서, 나는 쓸 수 있습니다 많은 다른 것들을 여기에, 그리고 차이를 만들지 않습니다. 그 만 존재하기 때문에 C의 세계. 이는 존재하지 않는 1과 0 세계. 그리고 우리의 프로그램은 프로그램에서 실행 1과 0의 세계. 그래서 당신의 마음의 명확 아직 불어 없습니다. 하지만 난 그 멋진 생각합니다. 그래, 제프. 청중 : 그래서, 만약 대신 INT를하고, 당신은 문자를 않습니다. 그리고 당신은했다 - 스피커 :의는 초에하자. 청중 : 당신은을 얻을 수 있기 때문에 서명에 부정적인 128에서가 127 0 ~ 255. 스피커 : 그래서 문자는 문제가있다. 문자가 될 왜 누구 아는 사람 없어 문제, 그리고 실제로하고자 사람의 상황을 타개 세계는 제로화? 청중 : 때문에 문자의 크기. 스피커 : 문자의 크기는 1입니다. 그래서 부호는 4 바이트입니다. 그래서 문자가 일을 망치는 것입니다. 그러나의 4 바이트 것입니다 문자와 관련된? 아니면 그 하나의 추가는 추가 - 당신은 하나의 문자를 넣을 수 있습니다 문자 후. 청중 : 샤아 스타. 스피커 샤아 스타 4 바이트 있습니다. 그래서 뭔가를 해 보자 그 문자의 스타입니다. 그래서 이것은 아마 작동합니다,하지만 우린 심지어 뭔가를 할 것 이것보다 미쳤. 제 생각에 미쳤. 지금 반환하는 함수를 작성했습니다 포인터 및 그 소요 포인터와 부호없는 값 - 우리가 거 우리가하지 않은 int로이 다시 변경 한 번에 너무 많은 변경. 그리고, 인덱스라는 배열이 배열에, 반환 주소. 우리는 이전에 이러한 연산자를 본 적이있다. 이, 당신이 무슨 생각하세요 나는 그것을 실행할 때, 대가로 할까? 당신은 할 것 어떻게 생각하십니까? 일까요? 청중 : segfault가. 스피커 : 무엇? 세그 폴트? 그건 좋은 생각입니다. 톰은 같은 일을 말한다. 다른 추측? 누구는거야 생각 같은 일을? 누구는 세그 폴트 것 생각? 그것은 동일한 일을한다. 미안 해요. 그러나 물론, 우리는 1과 2에 넣어. 그리고 사람들은 모두 유효합니다, 그렇죠? 어디 보자, 우리가 갈 수있는 배열의 두 번째 장소. 그러나 우리는 B를 만든 경우 음수? 그것은 아마 더 좋은 생각입니다 뭔가 segfaulting하십시오. 그것은 여전히​​ 작동합니다. OK, 이제이 미친 것입니다. 이 동등하게 유효한 SUM 함수입니다. 이 똑같은 일을 반환 A와 B로. 이 좋은 이유를 아무도 설명 할 수 기능을 요약, 또는 왜이 작동? 무슨 일이 일어나고 있는가? 그 이유는 동일한 기능을 수행합니까 우리의 오래된 sum 함수와 같은 것은? [? Akshar?] 무슨 일이야? 청중 : 당신이 때 때문에 주소의 위치 메모리 - 당신은 앰퍼샌드를 할 때, 해당 메모리 주소로 이동합니다. 당신이 B로 갈 때, 당신은 종류의이야 해당 메모리 주소의 단계를 이동하면, 당신은을 반환하고 있습니다. 그래서 사실, 사실입니다, 추가 및 B [들림]. 어디 표준 작업은 그 반환에? 같은 괄호 어디 가을합니까? 의 주소의 재림 전이나 [청취] 후? 스피커 : 그것은 나에 색인을거야 - 다음과 - 또는 인덱스에 주소를 반환합니다. OK, 그래서 모두가 이해 않았다 무엇을 [? Akshar?] 왜이 작품, 말하고, 설명? 나는 처음으로 누군가에게하지 않았다 나에게이 문제를 설명했다. 사람은 그림을 좋아하는 것 이것을 설명하기 위해? 우리는 함께 그림을 그릴거야 더 마커, 그 위대한 없습니다. 몇 가지를 발견했다. 그래서 우리의 배열이 일련의 상자. 첫번째는 인덱스 0, 인덱스 1, 2, 3, 4, 점, 점, 점. 일반적인 배열입니다. 및 인덱스를 갖는 외에, 그들 모두는 메모리 주소가 있습니다. 그래서이 메모리 주소 줄 수 있도록 13, 14, 15, 16, 17, 등등. 모두가 지금까지 여기에 있습니다. 그래서이 주소입니다. 배열, 포인터의 이름 이 저장됩니다. 또한, 그것은 메모리 위치의 정보, 포인터의 정보 배열의 시작. 따라서이 배열 인 경우, 13의 값이 될 것입니다. 그리고 물론, 우리가 제공 할 수 있습니다 우리가 원하는 임의의 값. 문자가 스타, 우리는 어떤을 줄 수 우리가 원하는 메모리 주소. 우리는 0을 제공 할 수 있습니다, 우리는 그것을 제공 할 수 있습니다 1 음 - 음의 1이 존재하지 않는, 그래서 아마 문제지만, 당신은 아직도 일 것을 보았다. 그래서 우리는 우리가 원하는 임의의 숫자를 줄 수 우리가 원하는 메모리 주소. 그런 다음, INT B가 말한다, OK,이 번호를 이동 의 배열로 단계를 반복합니다. 따라서, B는 2와 동일하고, 13 같으면 우리는 메모리 주소 13에있어. 그리고 우리는 두 단계로 이동, 그래서 우리가 여기있어. 그리고 앰퍼샌드는 반환을 의미 이 위치의 주소. 및 어드레스는 물론, 15이다. 그래서 우리는 13 플러스 2, 또는 15 플러스 B,. 문제는 생각입니다 - 미안 해요. 그 일을 명확히 않습니다 에 대한 이유는이 작품? 청중 : 왜 것 일 것이다 - 그래서 당신은 배열을 가질 수 있습니다 음의 인덱스로 이동? 스피커 : 오른쪽. 그래서 우리는 음수를했다, 그래서입니다 - 이것은, 그러나 의미가 않습니다 먼저, [? AVI,?] 당신을 위해? 청중 : 그래, 난 그냥 [청취]하지만 - 스피커 : 네, 이것은 15을 반환합니다. 13 살, B는 2 인 경우, 이 15를 반환합니다. 청중 : 그래서 제로 인덱싱하지 않습니다 오른쪽 문제가 될? 당신이 0에서 이동하고 있기 때문이다. 스피커 : 오른쪽. 그래서 당신은 움직이는거야 - 그래서 B가 0 인 경우, 당신은 어디에서든지 이동하지 않을 것입니다. 그리고 당신은 주소를 반환 것 - B가 0 인 경우, 즉 본질적으로의 의 주소를 반환. 문자 스타 전달 및 반환 의 주소는 단지를 반환, 기본적으로. 하는 이유 OK, 문제는 음수는 사용할 수 있습니까? 그리고 그에 대한 정말 멋진 일이야 이,이 segfault를해야하기 때문이다. 그리고 세그 폴트신다면 이런 일을했다. 의는 중간, 가정 해 봅시다. 따라서이 코드는 동일하게 인식 동일하게 동작한다. 기본적으로, X는 쓰레기 변수입니다, 그래서이 동일하게 동작한다. 의이를 만들어 보자 - 죄송합니다 - 스타. OK, 우리는 이미 여기에 오류가 있어요 이미 화가 될 것 때문에 나 한테 그것 때문에 이미 무슨 일이 일어날 지 알고있다. 특히, 두 번째. 스택의 메모리 주소 관련 지역 변수와 함께. 기본적으로, 나는 컴파일하지 않을 것이다 이, 그 때 나는 이렇게 취소거야 우리는 그냥 무슨 짓을했는지. 그러나 우리가 실제로 무슨 상관이야 때문에 메모리에 무엇에 접근 위치는 세그 폴트 않을거야. 우리는 실제로 무엇을보고 적이있어 두 번째 상자 또는 어떤 어떤 상자에있는 이 배열의. 우리는 여기에 주소의, ​​말을하는지 물건의 우리를 찾고 있어요 그 주소를 반환합니다. 우리는 사실에가는 일은 없습니다 해당 위치에서 볼 수있는 배열입니다. 그리고 우리는 기억을 만지지 않기 때문에, 우리는 문제가하지 않습니다. 우리는 세그먼트 폴트를하지 않습니다. 우리가하려고하면, 다시 닿 메모리는 A 또는 B에 무슨 터치 - 또는 브래킷 b 및 가정 0이고 - 가 0 인 경우도, 그 예쁜 것 우리가 갈 수 없기 때문에, 나쁜 이 모든 방법을 아래로. A와 B는 모두 0이고, 우리를하려고하면 거기에 무슨 터치, 우리는 것 곤경에. 하지만 우리가 무엇을 터치하지 않으면, 우리가 주소를 반환, 그것은이다 실제로 세그 폴트하지 않을 때문에 당신이 이러한 작업을 수행 할 수 있습니다. 그것은 단지 당신이 화를 가져오고 슈퍼를 가져옵니다 당신이 시도하고 터치하면, 화가 실제 메모리와 무엇을 반환 해당 메모리 위치에. 그 의미가 있습니까? 즉, C. 그래서 그냥 미친 부분의 우리는이 하나 더있다. 누가이 멋진 생각? 더 많은 사람들이. 잘 됐네. 자,이게 우리의 마지막입니다. 그리고 난 당신이 있는지 말해 싶습니다 또는 당신이가는 생각하지 똑같은 일을 할 수 있습니다. 나는이 어딘가에 아래로 작성했습니다. 나는 그들을 기억 아니에요. 어디 보자, 8, B 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 그래서 이것은 지금, 배열 하지 기능. 우리는 광장이 있기 때문에 그리고 그것은 배열의 브라켓, 곱슬하지 중괄호. 그리고 어떤 종류의 배열입니까? 누구나, 음? 대상 : 16 진수 숫자? 스피커 :하지만 C 유형은 무엇입니까? 그들은 모두 16 진수가 있습니다. C 유형은 무엇입니까? 그것은 당신을 알려줍니다. 청중 : 그것은 서명되지 않은 문자입니다. 스피커 : 오른쪽, 부호 문자. 그리고 두 개의 16 진수 숫자 1 바이트입니다. 그래서 이것들은 1,2, 3, 4, 5, 6, 7, 8, 9 바이트. 그것은 9 바이트의 배열입니다. OK, 당신은 아마 이미 알고 이 질문에 대한 답변. 그러나, 당신은 무슨 생각하세요 나는이 프로그램을 실행할 때 발생? 나는 mysum.c에, 다시 말 나는 기능을 기대 해요 즉, 두 개의 정수를 사용합니다. 그리고 그 대신 합계에게 말하는거야 문자의 배열입니다. 무슨 일이 일어날 때 나는. / mysum를 실행합니다? 음, 첫 번째, 당신의 대부분은 아마, 그 메이크업 동의 - 아, 그냥 농담. 뭘 내가 잘못입니까? 어 오. 즉, 중괄호해야합니다. 즉, 배열을 초기화하는 방법입니다. 내 잘못. 그래서 우리는 이미 그 종류 전에 보았다 C 수준의 추상화 아닌 아르 컴퓨터 수준의 추상화입니다. 그래서 당신의 대부분은 아마도이 예상 만들거나 만들 것이라고 가정. 하지만. / mysum 무엇을 실행하면? 무슨 일이 일어날? 일까요? 청중 : 그것은에 무슨 단어를 인쇄 할 수 있습니다. 스피커 : 그것은에 무슨 단어를 인쇄 할 수 있습니다. 어떤 단어? 청중 : [청취]. 스피커 : 다른 추측? OK, 문구를 인쇄 할 수 있습니다. 당신은 어떤 문구를 할 수 있습니다. 즉, 귀하의 측면에있을 것입니다. 다른 생각을 가지고 누구? 안나, 당신의 생각은 무엇입니까? 청중 : 그것은 인쇄합니다 - 두 글자, 또는 [들림] 문자를 하나. 스피커 : 문자를 하나. 청중 : 나는 셀 수 방법 [청취] 많은? 스피커 : 나인. 글쎄, 난 그것을 실행하는거야. 그것은 똑같은 일을한다. 이 두 숫자를 추가합니다. 그럼, 두 개의 인수를 전달할 수 있습니다. 이 인수를 사용하지 않습니다. 그래서 내가 모르는 곳이 있었다 아마도 이러한 인수를 얻을. 그러나의 100과 0으로 전달할 수 있습니다. 그리고 100과 0을 추가합니다. 제정신이 아니군. 나는 그렇게 생각한다. 너무 작품이, 4 음. 당신은 당신이 원하는 무엇이든 할 수 있습니다. 이 동등하게 유효한 합 기능입니다. 이 화 기능입니다. 그러나, 아니, 당신은 말하고 있어요 바이트의 배열입니다. 그래서 무슨 일이 일어난 걸까요? 그래서, 다시의이 아이디어로 돌아 가자 우리는 처음에 말했다. 당신은 어셈블리, C-레벨의 코드에서 이동 1과 0으로 언어. 이 16 진수입니다. 그러나 이것은 정말 그냥입니다 1과 0의 많은. 이것은 바로, 72과 0이다? 72과 0. 9 바이트. 각 바이트는 8 비트가 있습니다. 각 비트는 하나 또는 제로이다. 그래서 72 사람 또는 제로. 난 그냥이처럼 작성했습니다 - 오히려 많은대로를 작성하는 것보다 1과 0. 하지만이 C-레벨에서 이동합니다 어셈블리 언어, 코드 언어. 그리고이 코드에서 출력됩니다 어딘가에,이 72과 0 여기 쓴 것을. 그래서 어딘가에서 - 여기서 가자 - 어딘가 mysum에서, 프로그램이 입니다 제가했습니다이 72과 0 서면 작성을 말했다. 어떤 사람들을 위해 지금 어떤 추측 72과 0을 의미합니까? 청중 : 아마 같은 물건은 더하기 B를 반환합니다. 스피커 : 아마 같은 물건은 더하기 B를 반환합니다. 이제 다음을 확인 할 수 있습니다. 의 내가 이런 짓을하는 방법을 알아낼 수 있습니다. 당신이 여기에서 경우에, 나는 당신에게 이 명령을 실행하기 위해 objdump를-S sumfunction.o. 의 그것을 실행 가자. objdump를 - OBJ, 덤프. 기본적으로 그것은 저를 줄 수 있습니다 내가보고 싶은대로. 그것은 나에게 어셈블리 언어를 제공 할 수 있습니다. 그것은 나에게 1과 0을 제공 할 수 있습니다. 그것은 플래그이 많이 있습니다. 이것은 우리가 가고있는 하나입니다 지금은 사용할 수 있습니다. 점 - 당신은 슬라이드에서 볼 수 있듯이 - 대시 자본 S는 산재 말한다 소스 코드 - 이 라인은 C에서의 - 어셈블리 코드 1과 0과. 그리고 우리는 달아날거야 그것은 sumfunction.o에. 그것은 쉽게 볼 수있을 것입니다 때문입니다. 다시 - 음? 청중 : 당신이 잘못을 철자. 스피커 :하지만 실제로거야 초를 지 웁니다. 먼저 개방하고 다만 sumfuntion.o. 청중 : 당신은 그것을 철자 잘못된 처음. 스피커 : 고전. 합계 - 즉, 비록 어려운 단어입니다. 당신은 놀라게 될 것입니다. 좋아, 그럼이 sumfunction.o입니다. 난 당신을 말할 수 없습니다. 제로의 많은 많은 분명히있다 제로의, 다른 어떤이의 제로 아니다 물건. 그러나 대부분의 제로. 어떤 사람이처럼 보인다. 그러므로 분명히,이 판독하​​기 어렵다. 즉, 이진 언어입니다. 열 지금하자 - 무엇을? 내가 잘못 뭐하는 거지? 나는 그것을 정확하게 철자 했습니까? OK,이 어색하다. 나는 그림 1 초를 필요로 내가 잘못 무엇인지. 즉, 하나의 오류입니다. 이상 하네. 아, 그 이유. 나는 우리의 초기로 돌아 가야겠다 하나, 우리는 볼 수 있습니다 이것의 목적 코드. 정말로 존재하지 않을 때문에 우리가 넣으면 무엇이든 될 사람과 높은 제로 거기 우리는 간다. OK, 그래서 모든 사람들이 볼 수 있습니다. 이 기능은, 내가 말했듯이, C 라인을 넣어 - 소스 코드 라인 - 일부 조립 지침. 여기에 우리의 소스 코드의 라인입니다. 여기에 하나의 여기에 또 다른입니다. 다음은 어셈블리 명령어입니다. 즉, 그들이 어떻게 생겼는지입니다. 어셈블리 명령어 - 당신이 가지고가는 경우에 당신이 더 많은 것을 배울 수 다른 CS 클래스,하지만 그들은있어 일반적으로 명령. 그리고, 소스 및 대상. 그리고 여기에 바이너리 코드에게 있습니다 즉, 해당 어셈블리에 해당 명령. 당신이 볼 수있는만큼,이 sum 함수, 하루의 끝에서, 셋 조립 설명서. 만 세. 하나의 운동 - 이 M-O-V는 이동을 의미합니다. 부가 기능의 스탠드를 추가합니다. 그리고 R-E-t는 반환을 의미합니다. 그래서 하나의 운동, 하나의 추가, 하나의 반환. 그리고이 여기에, 제로이며, 그 코드에 해당하는 것. 그래서 그 제로와 사람, 만약에 당신 사람들을 알고, 당신은 넣을 수 있습니다 직선 인치 그 그리고, 그것은 할 것이다 똑같은 일이. 하루의 끝에서, 모두, 왜냐하면 당신이 실행하고 긴 시리즈 중 하나입니다 제로와 것​​. 그리고 그 코드가 정말 무엇이다. 그리고 이유 - 의 한 가지 살펴 보자. 나는 메이크에게 열려 있었나요? 우리는 대시로 돌아 갔다 그렇다면 제로는 여기 제로 - 죄송합니다, 자본 O 자본 오 제로, 제로가 아닌, 제로. 그리고 우리는 그것을하고자 했는가 여전히 동일하게 작동합니다. 그러나 지금 당신은이 있다는 것을 알 수 더 많은 조립 설명서. 다시, 나는 물었다 때문이다 모든 최적화 작업을 수행하지 않는 컴파일러. 그래서 나는 아직도이 모든 걸릴 수 있습니다 제로와 사람, 그리고 그들을 던져, 그것은 작동합니다. 난 그냥 최적화 때문에 한 그것은 조금 더 쉽게, 다음, 그 배열을 쓸 수 있습니다. 그러나 이것은 단지뿐만 아니라 작동합니다. OK, 우리는 마지막으로 일을 할 것입니다, 내가 가장 멋진 부분이라고 생각하기 때문이다. 모두가 분명히 비록 이미 무너졌고 말을. 우리의 마음이 울 렸습니다됩니다. [청취] 그래서, 이들은 다른 CS 클래스에서 있습니다, 하는 슈퍼 재미있다, 내가 찍은 것을 - CS61. 내가보기 엔 그것을 가지고하는 것이 좋습니다. 하지만이 사실에 대해 시원한 부분, 즉 물건은 제로와 사람입니다, 모든 것이 있습니다 제로와 것​​. 그래서 당신은이 파일을 수행 할 수있는 당신이 원하는 정확한 제로와 사람 그것은 어딘가에, 그 부분의를 사용하여 합 기능과 제로와 것​​. 그 무엇을 의미합니까? 난 당신이 이미지 파일을 수 있음을 의미하는 정확한 제로의 시리즈와이 뭔가를 인쇄 할 것, 이미지에 아웃. 그리고 하나의 프로그램 해석 할 수는 있습니다 이미지,하지만 당신은 경우, 그것을 해석 할 수 당신은 SUM 함수로 원하는. 우리를 위해, 열 싶었 그래서 경우 예를 들어,이 이미지. 의는 헬로 키티, 가자. 멋진 작은 이미지. 여기에 해당 문자열이 있습니다 제로와 사람의. 그 72 제로와 사람 이 이미지에 존재합니다. 그래서 내가 무엇을 할 수 있는지, 다음, 쓰기 - 나는 그들이 위치를 기억해야합니다. 나는 두 번째에 해당을 찾을 수 있습니다. 그러나 우리는 할 - 그들이 어디 있는지 알아 보자. 한 초. 의는하자 - 청중 : [청취]. 스피커 : 감사합니다. 그래서 우리는이 프로그램을 실행하면, 어떤 대신에 다음가는, 파일을 읽 파일이 색인에. 그리고, 다시, 그냥 좋아 mysum, 두 숫자를 사용합니다. 우리는 정확히 같은 번호를 추가 할 수 있습니다 우리가 간다, 이는 이전하고 있었다 을 보여 방법 사실, 그 끝에서 오늘의이 모든 것들입니다 제로와 것​​. 그리고 그것은 당신이 선택하는 단지 방법 을 해석하기. 그리고 당신은 실제로 보면 이 이미지에서 - 의 조금 확대 할 수 있습니다. 모두가 그것을 볼 수 있습니까? 당신은 바로 여기에 알 수 있습니다, 거기에 이상한 얼룩. 가자 -이 원래의 이미지입니다. 당신은 여기에 얼룩은 없다 알 수 있습니다. 즉, 화 함수의 코드이며, 작은 얼룩 바로 거기에 있다는 것입니다. 실제로, 다시, 당신이 배우면 더 이것에 대해, 당신은 알게 될거야 그이 심지어 더 큰이 헬로 키티, 얼룩은 인수 할 수있는 코드가 컴퓨터가 보호되어 있지 않은 경우 적절. 그래서 당신은 실제로이 작업을 실행할 수 있습니다. 지금은 그것을 실행하지 않을 것이다. 하지만 당신은 안녕이를 실행할 수 있습니다 키티 이미지, 그리고 수 컴퓨터를 인수. 그래서 데모에 대한 모든입니다. 누구 질문이 있는가, 의견, 우려? 나는이 물건을 매력이라고 생각합니다. 그것은 자세한 내용을 내게 영감을. 당신이 관심이 있다면 내가보기 엔, 추천 모든 CS에, 나에게 이야기한다. 나는 사회 해요 비록 집중, 나는 CS 해요, 차, 그래서 나는 아직도 조금 알고있다. 그러나 나는 확실히 알고 당신이해야 클래스. 나는 그것이 모두 정말 흥미로운 생각 나는에, 확실히 당신을 장려 당신이 관심이 있다면 자세한 내용을 보려면. 좋아, 내가 마지막으로 한가지가있다. 미안 해요. 질문? 나는 기다릴 일시 정지하지 않은 경우 사람 그것에 대해 질문했다. 사람이 될 것입니다 CS 집중? 또는 그것에 대해 생각? 하나, 둘, 셋, 넷. 한 - 하나. 안나의입니다 만 손으로 정식으로 제기했다. OK, 그 멋지다. 아삼, 당신은 무엇을 할 건가요? 청중 : [청취]. 스피커 : 콘스탄틴? 대상 : 물리. 스피커 : 와우​​, 빨리했다. 당신은 CS50의 나쁜 경험을했다? [청취], 당신은 무엇을 할 건가요? 청중 : 아무 생각이 없습니다. 스피커 : 커트? 청중 : 경제학 또는 CS. 스피커 : 경제학 또는 CS. 톰? 청중 : 나는 합계하고 있어요. 스피커 : 합계? OK. 당신은 무엇을? 청중 : 저? 스피커 : 네. 대상 : 합계. 스피커 : 합계. 아, 거기 당신은 간다. 톰, 알덴 이야기. 에밀리, 당신은 무엇입니까? 대상 : 바이오 메디컬 - 스피커 :이 절에 있습니까? 청중 : 호 스피커 : OK, 그 에밀리입니다. 그녀는 내 친구. 분명 그 친구의 좋은,하지 그녀는 나에게 힘든 시간을 제공하기 때문에. 당신은 앞에 저에게 친절하게 대할 수 모든 사람의, 내 학생 - 청중 : 당신의 Q 가이드를하고 있어요. 스피커 : 정말? 어 오. OK, 당신은 놀라운입니다. 난 당신을 너무 사랑 해요. 소년 아. 어쨌든, 난 지난 밤에, 모든 같은 - 나는 확실히 모두가 정말 보인다 해요 지금 강조했다. 나도 몰라, 신입생 -이다 너희들은 스트레스 느낌? 나는 스트레스를 느끼고있다. 그것은 당신이 집에 가서 같았다 추수 감사절. 내가 갈거야, 같은거야 이 모든 일을한다. 청중 : 너무 다르다. 스피커 : 그래, 당신은 돌아올. 제프, 당신은 그렇게 생각하지? 청중 : 난 그냥 생각 나는 조금 할 것. 스피커 : OK, 좋아. 그래서 내가 다시 와서, 내가하지 않은 아무 짓도. 그리고 슈퍼 스트레스입니다. 그리고, 진정으로 염려, 걱정 제가 여부에 대한 난에 모든 것을 마무리하는 것. 그러나 지난 밤은 내가 강조하지 않은, 나는 조금 슬펐다. 그래서 난에 대한 내 일기에 썼다 내가 슬픈 무엇인지. 그리고이 부분에 대한 슬펐다 이 클래스에 끝나고. 그래서 난 그냥 너희들 읽을려고 나의 신문의 작은 조각, 지난 밤부터. 나는 약간의 냅킨을 얻을 수 있습니다, 톰 일부 조직? 아니, 울거야. 나는 울지 않는다. 당신이 울지 않을 수 있습니다하지 않는 것이, 난 그냥 울지 마세요. 내가 알지도 못하는 경우 내 눈물 땀샘 일 - 눈물 덕트. 나는 긴 시간에 울었하지 않았습니다. 청중 : [청취]. 스피커 : OK, 감사합니다. OK, 약간의 서문이있다 - 내 일기의 일부 다른 부분이있다 항목, 나는 모든 저널에 노력하고 있기 때문에 나는 침대에 도착 전날 밤. 나는 매우 일지를 추천합니다. 그것은 또한 당신이 일을 처리하는 데 도움이, 그리고 하루 매우 감사합니다. 그리고 그것은 훨씬 더 쉽게 볼 수 있습니다 다시 날에 실현하는 좋은이 많이 있었다 일어난 일. 당신은 정말 스트레스를 느껴도 밤에 또는 정말 화가, 또는 정말 슬프거나 피곤. 오, 세상에. 이 쓰여 있는지조차 모르는 잘 나는 그것을 교정하지 않았기 때문입니다. 그러나 우리는 그것을 읽을 수 있습니다. 나는 보통 읽지 않는 내 저널, 분명히. "내일, 나는 나의 마지막을 가르쳐주지 올해의 CS50 섹션. 그것은 빠른 시간 비행 방법을 미쳤다. 그러나, 나는 얼마나 다른 강타 해요 올해 교육 내 경험이었다 나는 2 학년 때보다. 우선, 나는 확실히 더 나은 재료를 알고있다. 하지만 내 첫 번째 일대를 말하지 않는 학생들의. 더 중요한 것은, 그러나, 나는 실현 그 서에서 오는 기쁨 밖으로 시작 무엇의 방 앞까지 낯선 사람 만,,으로 끝으로 적어도, 페이스 북 친구입니다 하지 첫해 우연. 오히려, 즉 알고에서의 몇 가지 작은 방법은, 당신은 도움이있어 재능있는 사려 깊은, 유쾌한, 그리고 열정적 인 사람들이 좀 더 배우고 컴퓨터 과학에 대한. 당신은 전구를 이동하고 단지 소켓에있는 비트는, 그래서 그것은 수있어 당신보다 더 밝은 빛, 또는하는 그들, 학기 시작에 상상할 수 있습니다. 당신은 그 빈축을 거꾸로 돌려 돕고 있습니다 아래 질문을 그 지원을 제공하지만, 여전히 허용 학생들이 스스로 일 어설 수 있습니다. 그것은 확실히해도 과언이 아니다 이 섹션이 나의 마음에 드는 것을 말한다 주의 일부. 심지어 내가 말하는 것을 주저하는 것이, 그건 아는 오후 5시 반 (주) 모든,, 그것은 너무 오래있을거야 우리는 다시 만날 때까지. 그러나, 나는에 믿을 수 없을만큼 감사 해요 저에게이 주어 사람들을 모두 다른 사람에게 돌려 줄 수있는 기회. 다윗에게, 자신의 인내와 신뢰에 사용됩니다. 필름 및 생산 승무원에 대한 내가 어느 정도 존경 보이게. 그리고, 가장 중요한 것은 학생들에게, 이들이 없었다면 난 아무 이유가없는 것 최선을내는 10 시간 소요 포인터를 그리거나를 배치하는 방법 자바 스크립트를 통해 돌고래의 테이블. 언제나처럼, 그것은 축복입니다. " 그래서, 당신에게 사람을 감사합니다. 나는 CS50 박람회에 여러분 모두를 참조하고 있습니다 해킹 마라톤, 당신이 거기에 있다면. 당신은 질문이있는 경우에는, 나는 붙어 있습니다 더 이상이없는 정도까지. 그러나 나는 당신에게 사람을 감사 멋진 년. [박수] 스피커 : 내가 울고 있습니다.