1 00:00:00,000 --> 00:00:11,320 2 00:00:11,320 --> 00:00:13,260 >> DAVID Malan: হ্যালো, এবং এবং CS50 ফিরে স্বাগত জানাই. 3 00:00:13,260 --> 00:00:14,860 তাই এই সপ্তাহে চার শেষে. 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 SAT, বা থেকে 7 00:00:22,800 --> 00:00:24,130 চিঠি গ্রেড / UNSAT SAT. 8 00:00:24,130 --> 00:00:27,130 Annoyingly, যে প্রক্রিয়া প্রয়োজন আছে আপনি পূরণ করতে স্বাক্ষর, কারণ 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 শুধু আমার আসা পর্যন্ত বা Rob যাও অথবা যে কোনো স্থানে Lauren আপনি. 14 00:00:36,620 --> 00:00:39,550 আপনি কি ধরনের না থাকলে বা আমাদেরকে ইমেইল paperwork আপনাকে আজ প্রয়োজন, এবং আমরা 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 এই ক্লাসে আবরণ, অথবা সত্যিই কোন সি ব্যবহার করে পরিচায়ক কোর্স 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 একটু claymation দ্বিতীয় পূর্বরূপ আনা যারা Binky নামে চিত্র 43 00:01:59,680 --> 00:02:03,020 স্ট্যানফোর্ড এ আমাদের এক বন্ধু দ্বারা জীবন, অধ্যাপক নিক Parlante. 44 00:02:03,020 --> 00:02:06,753 তাই আমাকে যদি আপনি এই দিতে অনুমতি এখানে Binky এর টিজার. 45 00:02:06,753 --> 00:02:09,520 >> [ভিডিও প্লেব্যাক] 46 00:02:09,520 --> 00:02:10,380 >> -আরে, Binky. 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 ওহ, goodie. 52 00:02:17,928 --> 00:02:18,920 >> [END টি ভিডিও প্লেব্যাক] 53 00:02:18,920 --> 00:02:20,670 >> DAVID Malan: স্ট্যানফোর্ড যে কম্পিউটার বিজ্ঞান. 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 Malan: দুঃখিত, নিক. 57 00:02:26,660 --> 00:02:30,680 >> সুতরাং আমরা শেষ শেষ প্রত্যাহার এই সত্যিই উত্তেজনাপূর্ণ cliffhanger 58 00:02:30,680 --> 00:02:32,960 যদ্দ্বারা এই ফাংশন ঠিক কাজ করা হয়নি. 59 00:02:32,960 --> 00:02:34,960 অন্তত intuitively, এটি অনুভূত এটি কাজ করা উচিত ভালো লেগেছে. 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 এবং আমি কঙ্কাল কোড একটি বিট আপ লিখেছে আমি দাবি, যেখানে এখানে আগাম যে এক্স 65 00:02:50,180 --> 00:02:52,500 1 হতে হবে, Y 2 হবে. 66 00:02:52,500 --> 00:02:54,810 আমি তখন তাদের উভয় প্রিন্ট আউট মুদ্রণ চ সঙ্গে মানের. 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 1 দেখতে পাবেন. 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 Malan: জেস? 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 এই immortalize. 85 00:03:30,430 --> 00:03:32,800 86 00:03:32,800 --> 00:03:34,670 ঠিক আছে, এক গ্লাস. 87 00:03:34,670 --> 00:03:37,250 একটি ভিডিও রেকর্ড করুন. 88 00:03:37,250 --> 00:03:43,103 এবং ঠিক আছে, আমরা ভাল এখানে জেস সঙ্গে যেতে. 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 Malan: না, না. 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 ঠিক আছে, তাই আমরা চার বাইট আছে কমলার রস মূল্য. 102 00:04:12,950 --> 00:04:14,460 আমরা এটা মান 1 বলা হবে. 103 00:04:14,460 --> 00:04:16,579 এখন দুধ মূল্য অন্য চার বাইট. 104 00:04:16,579 --> 00:04:18,519 এটি 2 মূল্য কল হবে. 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 >> ঠিক আছে, সিদ্ধান্ত জ্ঞানময়. 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 এগিয়ে যান এবং temp ঘোষণা. 128 00:05:15,720 --> 00:05:17,980 এবং আমি এক্স, বলে, এটা সমান সেট করব. 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 পরিবর্তন করা যাচ্ছে না এখন আমরা হতে হবে না, কারণ এক্স, 132 00:05:27,460 --> 00:05:29,530 একটি বৃত্তে আটকে, বরং Temp. 133 00:05:29,530 --> 00:05:33,170 যেখানে অস্থায়ীভাবে আমি - বা যেখানে জেস অস্থায়ীভাবে কমলার রস লাগাতে 134 00:05:33,170 --> 00:05:35,460 যে clobbering আগে দুধ সঙ্গে কাপ. 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 এবং এখন আমার কোন swap 'চালানো যাক. 138 00:05:41,190 --> 00:05:43,910 আমি প্রসারিত এবং যদি সত্যিই আমি, দেখুন উইন্ডো একটি সামান্য বিট, যে 139 00:05:43,910 --> 00:05:45,160 এক্স 1, Y 2. 140 00:05:45,160 --> 00:05:47,230 এবং তারপর এক্স 2, Y 1. 141 00:05:47,230 --> 00:05:51,910 >> কিন্তু সোমবার আমরা জিনিস যে প্রত্যাহার একটু ভিন্নভাবে তদ্দ্বারা আমি 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 আপনার সঙ্গে তাই এটি শুধু messes মন, আমি মনে করি, আপনি ব্যবহার করতে হলে 151 00:06:15,640 --> 00:06:17,370 ঠিক একই ভেরিয়েবল. 152 00:06:17,370 --> 00:06:20,150 >> তাই আমি পরিবর্তে তাদের একটি ডাকবো এবং খ, শুধু স্বচ্ছতার জন্য. 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 এর পরিবর্তন করব একটি থেকে, খ এবং খ আমার 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 এবং তারপর আমি কি আছে এক জিনিস এখানে, অবশ্যই, এখন এই ডাকা হয় 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 শুধু গ্রহণ এর একটি ফাংশন যে লেখা কিছু কোড ছয় লাইন যেহেতু আমি 167 00:07:00,820 --> 00:07:02,970 পূর্বে প্রয়োগ করেছে এই তিনটি মাত্র মধ্যে. 168 00:07:02,970 --> 00:07:06,230 >> তাই আমাকে এখন এগিয়ে যান এবং পুনর্নির্মাণ করা যাক এই, কোন swap 'করা. 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 আমি কম্পাইলার শেখান ভুলে গেছি যে swap ' বিদ্যমান যাচ্ছে, যদিও তিনি 179 00:07:26,900 --> 00:07:28,920 খুব প্রারম্ভে বিদ্যমান নয় প্রোগ্রাম. 180 00:07:28,920 --> 00:07:35,780 তাই আমি ঠিক, অকার্যকর, swap 'বলতে যাচ্ছি int-এ একটি int-B, সেমিকোলন. 181 00:07:35,780 --> 00:07:37,280 >> তাই আমি এটা reimplement যাচ্ছি না. 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 >> তাই আমাকে এই পুনর্নির্মাণ করা যাক, কোন swap 'করা. 186 00:07:46,010 --> 00:07:46,910 অনেক ভালো আকৃতি. 187 00:07:46,910 --> 00:07:48,130 কোন swap 'চালান. 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 >> Student: [শ্রবণাতীত]. 193 00:07:57,630 --> 00:08:04,140 194 00:08:04,140 --> 00:08:05,230 >> DAVID Malan: যথাযথভাবে. 195 00:08:05,230 --> 00:08:07,330 সুতরাং একটি এবং খ x এবং y এর কপি. 196 00:08:07,330 --> 00:08:10,680 এবং বাস্তবিকই, যে কোনো সময় আপনি চলেছি এ পর্যন্ত একটি ফাংশন যে আহ্বান 197 00:08:10,680 --> 00:08:12,540 ints মত ভেরিয়েবল পাস - 198 00:08:12,540 --> 00:08:14,470 swap 'এখানে আশা করছে না যে, ঠিক যেমন - 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 >> তাই এখন, swap 'র প্রেক্ষাপটে, আমি সফলভাবে আসলে am 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 মুদ্রণ চ একটি আমি, নতুন লাইন% হল. 208 00:08:36,830 --> 00:08:38,770 এবং একটি মধ্যে let এর প্লাগ. 209 00:08:38,770 --> 00:08:41,830 এখনই বো সঙ্গে একই জিনিস করতে আসুন. 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 এর এই করতে তাই এখন আসুন, কোন swap 'করা. 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 >> এবং কোন swap 'চালানো. 218 00:09:00,860 --> 00:09:04,000 এক্স 1, Y 2. একটি হল 1, বো 2. 219 00:09:04,000 --> 00:09:06,070 এবং তারপর, একটি হল 2, বি 1. 220 00:09:06,070 --> 00:09:09,390 তাই এটি শুধু জেস মত কাজ করছে এখানে ভিতরে swap হওয়া করেনি. 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 আপনি এই scoping সমস্যার সম্মুখীন করছেন সমস্যা, আপনি হতে পারে শুধু punt এবং এক্স করতে 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 , বোর্ড প্রতিনিধিত্ব পরিবর্তনশীল কারণ 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 >> কিন্তু এখানে এই ক্ষেত্রে, আমি একটি ফাংশন ও swap 'কলিং. 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 এবং আমরা যে খুব sparingly করেনি 15.c. মধ্যে ফলে 238 00:09:57,760 --> 00:10:00,470 >> একটি আছে খুঁজে কিন্তু এটি সক্রিয় পুরাপুরি ভাল উপায়. 239 00:10:00,470 --> 00:10:05,600 আমার সম্পর্কে আসলে ফিরে যান এবং মুছে দিন চলুন শুরু করা যাক শুধু এই কোড সরল, চ এর প্রিন্ট করা হবে. 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 আমি যে এক আপ fess করব. 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 swap 'র ফাংশন, আমি পরিবর্তে আছি int-এ তারা বলে যাচ্ছে. 250 00:10:37,980 --> 00:10:39,170 এখন, তারা কি নির্দেশ করে? 251 00:10:39,170 --> 00:10:41,970 এই যে একটি পয়েন্টার যে ধারণা Binky, claymation চরিত্র ছিল, 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 আপনার ম্যাক বা আপনার পিসি আছে তাই আপনি যদি দুই গিগাবাইট, আপনি 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 প্রথম বাইট বিলিয়ন শূন্য সংখ্যা হয়. 267 00:11:15,410 --> 00:11:18,572 পরের এক বাইট এক নম্বর, সংখ্যা উপর দুই, সমস্ত পথ, বিন্দু বিন্দু 268 00:11:18,572 --> 00:11:20,530 প্রায় 2 বিলিয়ন বিন্দু. 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-এ তারা একটি, দেখুন এখন swap 'র মধ্যে প্রেরণ করা হয় 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 >> এবং একইভাবে বো জন্য, আমি যাচ্ছি একই জিনিস বলে. 276 00:11:41,250 --> 00:11:42,720 Int, তারকা, খ. 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 এবং যে ঠিকানা বো কল. 282 00:11:58,690 --> 00:12:01,120 >> কিন্তু এখন এখানে আমার কোড পরিবর্তন করতে হয়েছে. 283 00:12:01,120 --> 00:12:03,470 কারণ আমি int-temp ঘোষণা যদি - 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 পরিষ্কার করা, আমি সঙ্গে একটি একটি নির্বাণ am এখনই লিখিত হিসাবে কোড? 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 Temp শুধু জেস 'তৃতীয় কাপ বিদ্যমান অস্তিত্ব ছিল, কি উদ্দেশ্যে? 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 এই বাস্তব সামান্য nonsensical যাহাই হউক না কেন বিশ্বের প্রেক্ষাপটে. 294 00:12:31,200 --> 00:12:34,990 >> সত্যিই তাই, আমি কি temp মধ্যে লাগাতে চান একটি ঠিকানা, কিন্তু হল না 295 00:12:34,990 --> 00:12:36,180 একটি বিষয়বস্তু. 296 00:12:36,180 --> 00:12:41,930 একটি 123 মত একটি সংখ্যা সুতরাং, যদি এই হয় যে মেমরি 123rd বাইট একটি মাত্র 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 একইভাবে, যদি আমি কি পরিবর্তন হয়েছে ঠিকানাতে একটি, আমি পরিবর্তন 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 বো এ, তারকা বো তারা. 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 আমি যা করছি সব prefixing বুঝি যে এগুলো আমার ভেরিয়েবল বড়, 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 Intuitively, আমি ধরনের পরিবর্তন করে থাকেন আর্গুমেন্ট যে swap 'আশা করছে না যে, 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 >> আমি ও swap 'যখন কল. 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 >> সুতরাং যে কাজ করতে, একটি ampersand আছে. 324 00:13:57,600 --> 00:13:59,260 ঠিকানা মত ধ্বনি ampersand ধরনের. 325 00:13:59,260 --> 00:14:03,240 তাই N, ampersand, ঠিকানা এক্স, এবং y এর ঠিকানা. 326 00:14:03,240 --> 00:14:06,790 তাই এটা আমরা ব্যবহার করি যে ইচ্ছাকৃত এর ampersands ফাংশন কলিং যখন, 327 00:14:06,790 --> 00:14:10,230 এবং তারা ঘোষণা এবং যখন ফাংশন রূপায়ণকারী. 328 00:14:10,230 --> 00:14:14,220 >> এবং শুধু ampersand মনে অপারেটর ঠিকানা, এবং তারা 329 00:14:14,220 --> 00:14:15,490 অপারেটর সেখানে যান - 330 00:14:15,490 --> 00:14:18,640 অথবা, আরও সঠিকভাবে, dereference অপারেটর. 331 00:14:18,640 --> 00:14:23,480 যাতে মাত্র শব্দের একটি সম্পূর্ণ অনেক এখন, আশা, swap 'যাচ্ছে বলে যে 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 পাছে, এর আসলে ফাইল রিনেম করা যাক এই প্রোগ্রাম এখনও কোন swap 'নামে অভিহিত হইবে. 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 >> এবং এখন প্রকৃতপক্ষে, এক্স 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 2 বিলিয়ন আছে যা নির্দেশ এই জিনিস. 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 2 বিলিয়ন বাইরে খুব কম. 354 00:15:19,060 --> 00:15:21,120 কিন্তু এখন আমি উত্থাপন করা যাচ্ছে না নিম্নলিখিত. 355 00:15:21,120 --> 00:15:27,490 আমি এক্স যাচ্ছে উত্থাপন করা যাচ্ছে না সংখ্যা 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 আমি ints করতে চান, কারণ আসলে চার বাইট হতে. 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 byes দূরে এর 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 >> তাই এক্স, অবস্থান 123 এ আছে Y অবস্থান 127 এ আছে. 388 00:17:03,320 --> 00:17:05,770 এবং এখন, আমি আসলে কি করতে হবে কাজ করতে চান? 389 00:17:05,770 --> 00:17:10,099 আমি এখন ও swap 'যখন কল, কি আসলে নেভিগেশন যাচ্ছে? 390 00:17:10,099 --> 00:17:14,920 ওয়েল, আমি ও swap 'কল, আমি কথা প্রসঙ্গে করছি x এর ঠিকানা এবং y এর ঠিকানা. 391 00:17:14,920 --> 00:17:18,540 সুতরাং উদাহরণস্বরূপ, যদি এই দুই টুকরা কাগজ এখন দুটি উপস্থাপন 392 00:17:18,540 --> 00:17:23,510 আর্গুমেন্ট a ও b অদলবদল, এখন আমি কি am , এই প্রথম লিখতে যাচ্ছি 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 যে ঠিক আছে. 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 এবং এখন কাগজ দ্বিতীয় টুকরা উপর, এই বো হতে যাচ্ছে, এবং আমি কি am 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 সুতরাং যে কালো বাক্সে এখন প্রতিনিধিত্ব করে swap 'র ফাংশন. 411 00:18:04,640 --> 00:18:07,230 >> এদিকে, এর এখন কেউ আছে যাক swap 'র ফাংশন বাস্তবায়ন. 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 আমি আপনি কি করতে চান কি এবং চার্লি, এখন যেমন একটি উপায় swap 'বাস্তবায়ন করা হয় 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 এবং আমি আপনার কানের মধ্যে ফিস্ ফিস্ শব্দ পাবেন এখানে টিভি চালানোর জন্য কিভাবে. 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 >> Charlie: একটি 123 এবং বো 127 হয়. 427 00:18:36,740 --> 00:18:37,530 >> DAVID Malan: ঠিক আছে, ঠিক. 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 সামান্য বরাদ্দ হতে যাচ্ছে মেমরি বিট temp বলা হয়. 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 আপনি temp বলা হয়. 435 00:18:54,080 --> 00:18:57,120 এবং আপনি কি লিখতে যাচ্ছি কাগজ temp টুকরা উপর? 436 00:18:57,120 --> 00:19:02,524 437 00:19:02,524 --> 00:19:03,470 >> Charlie: পয়েন্টার, ডান? 438 00:19:03,470 --> 00:19:04,790 >> DAVID Malan: ঠিক আছে, ভাল না পয়েন্টার নয়. 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 এবং শুধু intuitively কি, তারা 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 ঠিক আছে, তাই এখন আপনি কি মান temp করা যাচ্ছে? 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 লিখুন বর্তমানে temp খেতাবধারী যে কাগজ. 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, 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 রাশি বো আকস্মিকভাবে বলতে কি, মানে? 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 বো এ পূর্বে যে মান. 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 আক্ষরিক, temp মধ্যে এখন কি হয়? 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 >> আর এখন আপনি তারা বি, এর মানে হল যে যখন ঠিকানা বো যান, যা হয় 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 >> Charlie: টেম্প, এক যা. 491 00:21:22,010 --> 00:21:23,430 >> DAVID Malan: টেম্প, এক যা. 492 00:21:23,430 --> 00:21:25,670 এবং শেষ পর্যন্ত temp কি ঘটবে? 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 >> সুতরাং temp এখনও আছে যে মান 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 এটি ধরনের যে intuitively হয়. 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 মত সত্যিই একটি সংখ্যা demarcate আপনি যে এরকম অথবা 127, 513 00:22:25,530 --> 00:22:28,420 একটি স্ট্রিং শুরু যেখানে আপনার কম্পিউটার এর মেমরি. 514 00:22:28,420 --> 00:22:31,870 >> কিন্তু এটা প্রতিনিধিত্ব করে না স্ট্রিং, প্রতি SE নিজেই. 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 এবং এখন আমি খুব, দাবি করতে যাচ্ছি যুক্তিসঙ্গতভাবে, গুলি সমান হলে, টি সমান যে 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 >> সব পরে, আমরা ইনপুট দুই ints, দুটি যদি চিহ্ন, দুটি floats, দুই টেনিস, কোন 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 >> এখন হয়তো, আমি শুধু কিছু mistyped. 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 একটি সারিতে আট 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 2 বিলিয়ন কিছু অদ্ভুত বাইট, সম্ভাব্য. 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 সাধারণত চার বাইট. 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 >> আপনি যদি এই মত কিছু ঘোষণা সুতরাং যখন স্ট্রিং গুলি, এই আসলে - 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 এটি flanking যে সত্য শব্দ গৃহস্থালি এটা মানে 605 00:26:14,180 --> 00:26:15,970 একটি চরিত্রের ঠিকানা. 606 00:26:15,970 --> 00:26:23,100 >> স্ট্রিং বলা হয়, এবং আমি টাইপ তাই আপনি যদি এইচ ই, L-, L-হে মধ্যে পেতে কি এখন উত্থাপন 607 00:26:23,100 --> 00:26:27,330 স্ট্রিং আক্ষরিক সব ফিরে হয়েছে এই সময়, আমরা করেছি বরং যদিও 608 00:26:27,330 --> 00:26:29,980 বিশ্বের oversimplified? 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 এটা যে অক্ষরগুলি দেখছেন সেগুলি plops মেমরির মধ্যে সে ধরনের. 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 >> Student: [শ্রবণাতীত]. 643 00:28:05,000 --> 00:28:05,730 >> DAVID Malan: যথাযথভাবে. 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 >> সি - 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 এইচ ই, L-, L-হে সংরক্ষণ এবং তাই ঘোষণা. 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 >> কিন্তু কি এর মানে কি যে হয় গুলি শেষ পর্যন্ত সংরক্ষণ করা যাচ্ছে? 663 00:28:59,110 --> 00:29:00,750 সংখ্যা 123. 664 00:29:00,750 --> 00:29:04,860 , টি সংরক্ষণ করা যাচ্ছে কি এই নির্বিচারে উদাহরণে? 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 তাই এই অবস্থা কখনও যদি সত্য মূল্যায়ণ করা হয়. 668 00:29:14,940 --> 00:29:18,430 পান স্ট্রিং বিভিন্ন ব্যবহার করা হয়, কারণ মেমরির অংশ প্রতিটি সময়. 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 কিন্তু যখন, স্ট্রিং রিটার্ন নাল পেতে পারে অন্য বিশেষ অক্ষর, বা বিশেষ 678 00:29:42,490 --> 00:29:45,050 প্রতীক let এর বলে. 679 00:29:45,050 --> 00:29:45,900 এটি মেমরি আউট যদি. 680 00:29:45,900 --> 00:29:48,970 >> উদাহরণস্বরূপ, ব্যবহারকারী সত্যিই যদি একটি atrocious কঠিন এবং ধরন হচ্ছে 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 কারণ, ভাল স্ট্রিং প্রতাপ পেতে খুব ভাল নাল ফিরে. 684 00:29:57,820 --> 00:30:01,080 >> অথবা আপনার প্রোগ্রাম নিজেই অনেক কাজ হলে অন্যান্য জিনিসপত্র এবং ঠিক আছে 685 00:30:01,080 --> 00:30:03,790 পান স্ট্রিং জন্য পর্যাপ্ত মেমরি সফল সমাপ্তির ইঙ্গিত দেওয়া, এটা শেষ হতে পারে 686 00:30:03,790 --> 00:30:05,240 নাল ফিরে আপ. 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 দেখা যাচ্ছে, নাল হল - হ্যা, অবশ্যই একটি বিশেষ চিহ্ন. 692 00:30:17,500 --> 00:30:19,190 কিন্তু এটি সত্যিই কি? 693 00:30:19,190 --> 00:30:25,220 আসলে, নাল শুধু একটি প্রতীক যে আমরা মানুষ হিসাবে ভাল শূন্য উপস্থাপন করতে হয়. 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 Bye শূন্য সংরক্ষিত? 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 আমি এক সময়ে শুরু হয়. 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 ঠিকানার ক্ষেত্রে, আপনি ফিরে নাল - অন্যথায় শূন্য নামে পরিচিত - 705 00:30:55,960 --> 00:30:59,410 এবং আপনি কোন আছে জানি যে কারণ পরিষ্কারভাবে, ঠিকানা শূন্য এ তথ্য legit 706 00:30:59,410 --> 00:31:00,400 একটি ত্রুটি মানে. 707 00:31:00,400 --> 00:31:04,080 এবং যে আমরা কনভেনশন দ্বারা, চেক কেন নাল এবং রিটার্ন কিছু 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 বাম দিকে, আমাকে আরেকটা দিতে একটি অক্ষর, এবং এটি কল পয়েন্টার. 714 00:31:23,155 --> 00:31:26,935 আমি উপর ভিত্তি করে, T এর ভিতরে কি সংরক্ষণ am কোড এই এক লাইন? 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 বিশেষভাবে অবস্থান যে গুলি ছিল. 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 >> এখন আমি অন্য একটি পয়েন্টার ডিক্লেয়ার করার সময় একটি গৃহস্থালি এবং এটি কল টি, নম্বর কি 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 >> সঙ্গে প্রথম আমি দাবি করতে যাচ্ছি একটি মুদ্রণ চ, capitalizing 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 এ নিশ্চিত যে অন্তত দৈর্ঘ্য শূন্য তার চেয়ে অনেক বেশী, 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 টি বন্ধনী শূন্য আমার সম্পর্কে শূন্য দেয় স্ট্রিং টন অক্ষর. 738 00:32:30,800 --> 00:32:34,360 যে একই মান উপরের এবং 2, অবশ্যই, এটি বড়হাতের পরিবর্তিত. 739 00:32:34,360 --> 00:32:38,230 >> তাই intuitively, এই লাইন হাইলাইট প্রথম কোড capitalizing হয় 740 00:32:38,230 --> 00:32:40,250 T মধ্যে অক্ষর. 741 00:32:40,250 --> 00:32:44,485 কিন্তু এটা intuitively, capitalizing না গণ প্রথম চিঠি. 742 00:32:44,485 --> 00:32:48,130 আপনি এগিয়ে চিন্তা করছি কিন্তু যদি, এখন আমি কি am আমি এই প্রোগ্রাম চালানো যখন দেখতে 743 00:32:48,130 --> 00:32:54,220 এবং মূল উভয় প্রিন্ট আউট গণ, এবং তথাকথিত কপি, 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 এটি ঠিক আছে প্রনয়ন করেছেন. 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 গৃহস্থালির কাজ শুরু গুলি, বা স্ট্রিং গুলি, আমি একটি পয়েন্টার পেয়ে am - 759 00:33:30,410 --> 00:33:33,090 যা চার বাইট হতে হবে এবং 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 এইচ ই, L-, L-হে ব্যাকস্ল্যাশ শূন্য. 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 তাই কি সত্যিই এখানে s এর ভিতরে যায়? 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 >> সুতরাং let এর বিমূর্ত দূরে এবং বলে যে, আপনি ভালো কোড একটি লাইন চালানো হলে, 788 00:34:54,230 --> 00:34:57,320 গৃহস্থালি তারা গুলি ফেরত পায় পান স্ট্রিং এর মান. 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 এবং আমি এটি কল করতে যাচ্ছি. 801 00:35:28,160 --> 00:35:33,500 >> এবং এখন আমরা আবার কোড ফিরে যান, আমি টন গুলি অভ্যন্তরীণ সঞ্চয়, যখন 802 00:35:33,500 --> 00:35:36,920 আমি টেকনিক্যালি কি am 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, এটা শুধু একটা পয়েন্টার যদি, intuitively ঠিক, হয়. 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 শূন্য অক্ষর capitalizing 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 উপরের কল যদি তাই হয়, কি যে সত্যিই capitalizing হয় করছেন 822 00:36:35,090 --> 00:36:38,290 য়ের বড়হাতের অক্ষর ছোটহাতের এইচ যাও ছোট হাতের অক্ষর ব্যবহার জ তবে অবশ্যই, গুলি কি? 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 >> ওয়েল intuitively, কিভাবে হবে আপনি দুই তুলনা সম্পর্কে যান 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 পান স্ট্রিং এর মান ফিরে. 839 00:37:20,610 --> 00:37:21,750 টন সঙ্গে একই জিনিস করতে চলুন শুরু করা যাক. 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 নাল মত অবৈধ মান. 845 00:37:35,330 --> 00:37:36,440 >> তাই আমি ঠিক চেক করতে যাচ্ছি. 846 00:37:36,440 --> 00:37:41,490 গণ সমান নাল না এবং T না করা হলে সমান নাল, আমরা ঠিক করছি না. 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 শুধু এই একটি সি ফাংশন. 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 এবং যখন আপনি এই দেখা হয়ে থাকতে পারে আপনি man পৃষ্ঠাগুলি ব্যবহার করেছি যদি আপনি 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 বা সমান বা শূন্য অধিক 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 শূন্য দুই স্ট্রিং intuitively যদি জন্য অভিন্ন, চরিত্র 875 00:38:55,760 --> 00:38:57,120 অক্ষরের জন্য অক্ষর. 876 00:38:57,120 --> 00:38:59,970 >> এটি একটি ঋণাত্মক সংখ্যা যদি ফেরৎ গুলি, বর্ণানুক্রমে, অনুমিত হয় 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 >> ইতিমধ্যে, আমি যদি নিম্ন মধ্যে হ্যালো টাইপ কেস এবং উপরের ক্ষেত্রে HELLO এবং 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-মধ্যে layman এর পরিপ্রেক্ষিতে কেউ উত্থাপন করা হতে পারে 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 >> ঠিক আছে, তাই এখন ডান দিকে, আমি করেছি এই ফাংশন এক দেখেননি 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 >> তাই এখানে খুব - এবং এই উদীয়মান হয় সি, আপনি যে কোনো সময় 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 >> সুতরাং let এর এখানে আকর্ষণীয়. 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 S এর স্ট্রিং দৈর্ঘ্য - let এর একটি কংক্রিট উদাহরণ না. 934 00:41:26,090 --> 00:41:30,700 গণ হ্যালো হলে, এইচ ই, L-, L-হে কি s এর স্ট্রিং দৈর্ঘ্য, সম্ভবত? 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 কেন আমি ছয় বাইট চান পরিবর্তে পাঁচটি? 938 00:41:37,700 --> 00:41:38,790 নাল অক্ষর. 939 00:41:38,790 --> 00:41:41,210 >> আমি এই ছিল বন্ধ ছেড়ে দিতে চান না বিশেষ নাল অক্ষর. 940 00:41:41,210 --> 00:41:45,160 কারণ আমি হ্যালো একটি কপি করতে হলে মাত্র এইচ ই, L-, L-হে না, কিন্তু আমি রাখা না 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 >> সুতরাং আমরা ছয় বাইট জমা করার প্রয়োজন এইচ ই, L-, L-হে ব্যাকস্ল্যাশ শূন্য. 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 ভিন্ন পিসি. 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 >> অবশেষে, নিচে এখানে আমি নাল জন্য চেক যা সবসময় ভাল অনুশীলন - আবার, 962 00:42:43,720 --> 00:42:44,920 আমরা পয়েন্টার সঙ্গে লেনদেন করছেন যে কোন সময়. 963 00:42:44,920 --> 00:42:47,520 Malloc দিতে সক্ষম ছিল না যদি আমার সম্পর্কে ছয় byes - যা 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 >> আমি এগিয়ে যান এবং স্ট্রিং পেতে যাচ্ছি s এর দৈর্ঘ্য এবং 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 প্রতিটি পুনরাবৃত্তির উপর, আমি রাখা যাতে ith মধ্যে s এর ith চরিত্র 972 00:43:13,540 --> 00:43:15,380 টন অক্ষর. 973 00:43:15,380 --> 00:43:18,190 >> তাই কি সত্যিই নীচে যাচ্ছে এখানে ফণা? 974 00:43:18,190 --> 00:43:22,140 এই যদি, উদাহরণস্বরূপ, গুলি করা হয় - 975 00:43:22,140 --> 00:43:26,400 এবং আমি শব্দ এইচ ই, L-, L-হে টাইপ করা আছে এবং একটি ব্যাকস্ল্যাশ শূন্য আছে. 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 >> কিন্তু যত তাড়াতাড়ি আমি শুরু শূন্য থেকে looping গুলি, 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 এখানে iteratively জ, ই, L-, L-হে. উপরন্তু আমি প্লাস, কারণ 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 টন ক্যাপিটালাইজেশন, আমরা উচিত গণ অপরিবর্তিত যে দেখুন. 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 তাই শুধু intuitively এখানে, প্রথম লাইন কোড, int-তারা এক্স, ঘোষণা করা হয় 1000 00:44:56,040 --> 00:44:57,340 এক্স নামক একটি পরিবর্তনশীল. 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 যে cliffhanger ছিল না. 1005 00:45:06,980 --> 00:45:08,350 >> ডাটা টাইপ int-এ তারকা. 1006 00:45:08,350 --> 00:45:12,600 সুতরাং যে কি মানে? এক্স পাবেন কোন 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 তারা এক্স এর মানে কি? 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 খুব খারাপ কিছু হয় Binky ঘটা. 1032 00:46:17,220 --> 00:46:25,810 তাই শেষ পর্যন্ত কি দেখতে দিন এই মিনিটে এখানে Binky ঘটছে 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 >> -আরে, Binky. 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 ওহ, goodie. 1041 00:46:34,010 --> 00:46:37,220 >> -ওয়েল, শুরু করার জন্য, আমি আমরা অনুমান একটি দম্পতি পয়েন্টার প্রয়োজন যাচ্ছি. 1042 00:46:37,220 --> 00:46:37,930 >> -ঠিক আছে. 1043 00:46:37,930 --> 00:46:41,650 এই কোড দুই পয়েন্টার বরাদ্দ যা পূর্ণসংখ্যার নির্দেশ করতে পারেন. 1044 00:46:41,650 --> 00:46:43,760 >> -ঠিক আছে, ভাল, আমি দুটি পয়েন্টার দেখতে. 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 >> -ঠিক আছে. 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 >> -ঠিক আছে. 1060 00:47:09,530 --> 00:47:14,110 আমি dereference পয়েন্টার এক্স সঞ্চয় করব তার pointee মধ্যে নম্বর 42. 1061 00:47:14,110 --> 00:47:17,660 এই কৌতুক জন্য, আমি আমার জাদু করতে হবে dereferencing এর জাদুদণ্ড. 1062 00:47:17,660 --> 00:47:20,695 >> Dereferencing অফ তোমার যাদু জাদুদণ্ড? 1063 00:47:20,695 --> 00:47:22,632 Uh, যে মহান. 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 এর অনুসরণ করে একটি dereference করছেন তার 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 >> -ঠিক আছে. 1072 00:47:42,125 --> 00:47:46,810 আমি শুধু Y এখানে উপর যান এবং করব সংখ্যা 13 সেট আপ করতে পারেন. 1073 00:47:46,810 --> 00:47:50,890 এবং তারপর এর জাদুদণ্ড নিতে dereferencing এবং শুধু - 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 Binky, বলুন, আমি মনে করি না Y dereferencing একটি ভাল ধারণা 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 অত্যন্ত observant. 1086 00:48:12,170 --> 00:48:13,790 >> -আরে, আপনি যা খুঁজছেন আছে ভাল, Binky. 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 সুতরাং আপনি জাদুদণ্ড চেষ্টা করতে পারেন আবার dereferencing এর 1100 00:48:36,520 --> 00:48:39,200 ওভার 13 পাঠাতে. 1101 00:48:39,200 --> 00:48:39,840 >> -ঠিক আছে. 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 কাজ dereferencing. 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 >> দুই নম্বর, পয়েন্টার dereferencing শুরু পয়েন্টার এবং অনুসরণ করে তার 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 Malan: পয়েন্টার তাই আরো, Binky আগামী সপ্তাহে আরও. 1133 00:49:36,940 --> 00:49:38,190 আমরা সোমবার আপনি দেখতে পাবেন. 1134 00:49:38,190 --> 00:49:42,187