1 00:00:00,000 --> 00:00:06,030 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:06,030 --> 00:00:08,390 >> ডগ লয়েড: পয়েন্টার, এখানে আমরা. 3 00:00:08,390 --> 00:00:11,080 এটি সম্ভবত যাচ্ছে সবচেয়ে কঠিন বিষয় হতে 4 00:00:11,080 --> 00:00:12,840 আমরা CS50 মধ্যে সম্পর্কে যে কথা বলা. 5 00:00:12,840 --> 00:00:15,060 এবং আপনি পড়তে থাকেন তাহলে পয়েন্টার সম্পর্কে কিছু 6 00:00:15,060 --> 00:00:19,080 আপনি একটি সামান্য বিট হতে পারে আগে ভয় দেখিয়ে এই ভিডিওতে যাচ্ছে. 7 00:00:19,080 --> 00:00:21,260 এটা পয়েন্টার সত্য আপনি ক্ষমতা অনুমতি না 8 00:00:21,260 --> 00:00:23,740 সম্ভবত স্ক্রু আপ বেশ খারাপভাবে আপনি যখন 9 00:00:23,740 --> 00:00:27,450 ভেরিয়েবল, এবং তথ্য দিয়ে কাজ, এবং আপনার প্রোগ্রাম বিপর্যস্ত হবে যার ফলে. 10 00:00:27,450 --> 00:00:30,490 কিন্তু তারা আসলে সত্যিই দরকারী আছেন এবং তারা আমাদের সত্যিই একটি দুর্দান্ত উপায় অনুমতি 11 00:00:30,490 --> 00:00:33,340 ফিরে ডাটা পাস এবং ঘোষণা ফাংশন মধ্যে, 12 00:00:33,340 --> 00:00:35,490 যে আমরা অন্যথায় করতে অসমর্থ হন. 13 00:00:35,490 --> 00:00:37,750 >> আর তাই আমরা কি সত্যিই ট্রেন এখানে কাজ করতে চান 14 00:00:37,750 --> 00:00:41,060 আপনি ভাল পয়েন্টার শৃঙ্খলা আছে, তাই করার আপনি কার্যকরভাবে পয়েন্টার ব্যবহার করতে পারেন 15 00:00:41,060 --> 00:00:43,850 আপনার প্রোগ্রাম যে অনেক ভালো করতে. 16 00:00:43,850 --> 00:00:48,220 আমি আগেই বলেছি পয়েন্টার আমাদের একটি ভিন্ন দিতে পথ ফাংশন মধ্যে তথ্য প্রেরণ করতে. 17 00:00:48,220 --> 00:00:50,270 এখন আপনার কাছ থেকে প্রত্যাহার হলে তার আগে একটি ভিডিও, যখন 18 00:00:50,270 --> 00:00:53,720 আমরা যে বিষয়ে কথা বলছি পরিবর্তনশীল সুযোগ, আমি উল্লেখ 19 00:00:53,720 --> 00:01:00,610 যে আমরা মধ্যে পাস যে সব তথ্য সি ইন ফাংশান উপস্থিত মান দ্বারা প্রেরণ করা হয়. 20 00:01:00,610 --> 00:01:03,070 আর আমি যে ব্যবহৃত হতে পারে না বরং শব্দটি আমি সেখানে বোঝানো, কি 21 00:01:03,070 --> 00:01:07,170 আমরা তথ্য কপি ক্ষণস্থায়ী যে ছিল. 22 00:01:07,170 --> 00:01:12,252 আমরা একটি ফাংশন যে আপনি একটি পরিবর্তনশীল পাস করার সময়, আমরা আসলে পরিবর্তনশীল পাশ করছি না 23 00:01:12,252 --> 00:01:13,210 ফাংশন, ডান? 24 00:01:13,210 --> 00:01:17,670 আমরা একটি কপি পার করছি ফাংশন যে তথ্য. 25 00:01:17,670 --> 00:01:20,760 ফাংশন কি এটা করবে না এবং এটা কিছু মান হিসাব, 26 00:01:20,760 --> 00:01:23,180 এবং হয়তো আমরা যে মান ব্যবহার এটা ফেরত দেয় যখন. 27 00:01:23,180 --> 00:01:26,700 >> একটি ব্যতিক্রম ছিল মান পাশ এই নিয়ম, 28 00:01:26,700 --> 00:01:31,210 এবং আমরা কি যে ফিরে আসবো এই ভিডিওতে একটু পরে হয়. 29 00:01:31,210 --> 00:01:34,880 আমরা পরিবর্তে পয়েন্টার ব্যবহার করা হলে ভেরিয়েবল ব্যবহার করে, 30 00:01:34,880 --> 00:01:38,180 বা ভেরিয়েবল ব্যবহার পরিবর্তে নিজেদের বা ভেরিয়েবল কপি, 31 00:01:38,180 --> 00:01:43,790 আমরা এখন প্রায় ভেরিয়েবল প্রেরণ করতে পারেন অন্যভাবে ফাংশন মধ্যে. 32 00:01:43,790 --> 00:01:46,550 এই আমরা করতে হলে এর মানে হল যে এক ফাংশন একটি পরিবর্তন, 33 00:01:46,550 --> 00:01:49,827 যে পরিবর্তন আসলে নিতে হবে একটি ভিন্ন ফাংশন প্রভাবিত. 34 00:01:49,827 --> 00:01:52,160 আবার, এই কিছু হয় যে আমরা পূর্বে যা পারে নি 35 00:01:52,160 --> 00:01:56,979 এবং আপনি কি অদলবদল করার চেষ্টা করেছি একটি ফাংশন দুটি ভেরিয়েবল এর মান, 36 00:01:56,979 --> 00:01:59,270 আপনি এই সমস্যা লক্ষ্য করেছি আপ লতানে সাজানোর, ডান? 37 00:01:59,270 --> 00:02:04,340 >> আমরা X এবং Y, এবং আমরা অদলবদল করতে চান তাহলে swap 'নামক একটি ফাংশন তাদের পাস, 38 00:02:04,340 --> 00:02:08,680 ফাংশনের ভিতর অদলবদল ভেরিয়েবল বিনিময় মান না. 39 00:02:08,680 --> 00:02:12,600 এক দুই হয়ে, দুটি হয়ে এক, কিন্তু আমরা আসলে না 40 00:02:12,600 --> 00:02:16,890 মূল মধ্যে কিছু পরিবর্তন ফাংশন, কলার মধ্যে. 41 00:02:16,890 --> 00:02:19,550 কারণ আমরা করতে পারেন না, আমরা করছি শুধুমাত্র তাদের কপি সঙ্গে কাজ. 42 00:02:19,550 --> 00:02:24,760 যদিও পয়েন্টার দিয়ে, আমরা যা করতে পারেন আসলে একটি ফাংশন এবং X ও Y পাস. 43 00:02:24,760 --> 00:02:26,960 যে ফাংশন করতে পারেন তাদের সঙ্গে কিছু. 44 00:02:26,960 --> 00:02:29,250 এবং যারা ভেরিয়েবল মান আসলে পরিবর্তন করতে পারেন. 45 00:02:29,250 --> 00:02:33,710 সুতরাং যে বেশ একটি পরিবর্তন তথ্য দিয়ে কাজ করার জন্য আমাদের ক্ষমতা. 46 00:02:33,710 --> 00:02:36,100 >> আমরা সেটাতে যাওয়ার আগে পয়েন্টার, আমি এটা মনে করি 47 00:02:36,100 --> 00:02:38,580 কয়েক মিনিট গ্রহণ এখানে বুনিয়াদি ফিরে যেতে. 48 00:02:38,580 --> 00:02:41,000 আর কিভাবে কটাক্ষপাত আছে কম্পিউটার মেমরি কাজ 49 00:02:41,000 --> 00:02:45,340 এই দুটি বিষয় যাচ্ছি কারণ আসলে বেশ পারস্পরিক হতে. 50 00:02:45,340 --> 00:02:48,480 আপনি সম্ভবত জানেন, আপনার কম্পিউটার সিস্টেমের উপর 51 00:02:48,480 --> 00:02:51,310 আপনি একটি হার্ড ড্রাইভ আছে বা সম্ভবত একটি সলিড স্টেট ড্রাইভ, 52 00:02:51,310 --> 00:02:54,430 ফাইল স্টোরেজ পাঁচ কিছু বাছাই. 53 00:02:54,430 --> 00:02:57,950 এটা কোথাও সাধারণত 250 গিগাবাইট এর আশপাশ 54 00:02:57,950 --> 00:02:59,810 এখন টেরাবাইট হয়তো একটি দম্পতি. 55 00:02:59,810 --> 00:03:02,270 আর তা হচ্ছে, যেখানে সব আপনার ফাইল শেষ পর্যন্ত, বাস 56 00:03:02,270 --> 00:03:04,870 আপনার কম্পিউটার শাট হয়, এমনকি যখন বন্ধ, আপনি কি এটা আবার চালু করতে পারেন 57 00:03:04,870 --> 00:03:09,190 এবং আপনি আপনার ফাইল আছে পাবেন আবার আপনি আপনার সিস্টেম পুনরায় বুট করার সময়. 58 00:03:09,190 --> 00:03:14,820 কিন্তু একটি হার্ড ডিস্ক ড্রাইভের মত ডিস্ক ড্রাইভ, একটি HDD, বা একটি সলিড স্টেট ড্রাইভ, একটি এসএসডি, 59 00:03:14,820 --> 00:03:16,050 শুধু স্টোরেজ স্পেস হয়. 60 00:03:16,050 --> 00:03:20,400 >> আমরা আসলে সাথে কিছু করতে পারবেন না হার্ড ডিস্ক এ যে তথ্য, 61 00:03:20,400 --> 00:03:22,080 বা সলিড স্টেট ড্রাইভ এ. 62 00:03:22,080 --> 00:03:24,950 আসলে পরিবর্তন করার জন্য তথ্য বা এটি প্রায় সরানো, 63 00:03:24,950 --> 00:03:28,800 আমরা এটা স্থানান্তর করতে হবে র্যাম, অবাধ প্রবেশ স্মৃতি. 64 00:03:28,800 --> 00:03:31,170 এখন র্যাম, আপনি অনেক আছে আপনার কম্পিউটার এ কম. 65 00:03:31,170 --> 00:03:34,185 আপনি কোথাও থাকতে পারে 512 মেগাবাইটের আশপাশ 66 00:03:34,185 --> 00:03:38,850 আপনি যদি কোনো পুরোনো কম্পিউটার আছে, হয়তো দুই, চার, আট, 16, 67 00:03:38,850 --> 00:03:41,820 সম্ভবত এমনকি সামান্য আরো, উপস্থিত RAM- র গিগাবাইট. 68 00:03:41,820 --> 00:03:46,390 সুতরাং যে অনেক ছোট, কিন্তু যে যেখানে উদ্বায়ী তথ্য সব বিদ্যমান. 69 00:03:46,390 --> 00:03:48,270 আমরা কিছু পরিবর্তন করতে পারেন যে যেখানে. 70 00:03:48,270 --> 00:03:53,350 কিন্তু আমরা আমাদের কম্পিউটার বরখাস্ত করা হলে, উপস্থিত RAM- র মধ্যে তথ্য সব ধ্বংস হয়. 71 00:03:53,350 --> 00:03:57,150 >> আমরা হার্ড ডিস্ক আছে প্রয়োজন সুতরাং যে কেন এটা আরো স্থায়ী অবস্থান, 72 00:03:57,150 --> 00:03:59,720 এটা exists- যাতে এটা would সত্যিই খারাপ হতে যদি প্রত্যেক সময় আমরা 73 00:03:59,720 --> 00:04:03,310 আমাদের কম্পিউটার বন্ধ পরিণত ভাষার আমাদের সিস্টেমে ফাইল ধ্বংস হয়েছিল. 74 00:04:03,310 --> 00:04:05,600 সুতরাং আমরা RAM- র ভিতর কাজ. 75 00:04:05,600 --> 00:04:09,210 এবং প্রত্যেক সময় আমরা যে বিষয়ে কথা বলছি মেমরি, প্রায় কাছাকাছি, CS50 মধ্যে, 76 00:04:09,210 --> 00:04:15,080 আমরা র্যাম, না হার্ড ডিস্ক বিষয়ে কথা বলছি. 77 00:04:15,080 --> 00:04:18,657 >> সুতরাং আমরা মেমরিতে জিনিষ সরানো যখন, এটা স্থান একটি নির্দিষ্ট পরিমাণ পর্যন্ত সময় লাগে. 78 00:04:18,657 --> 00:04:20,740 তথ্য ধরনের সব যে আমরা সঙ্গে কাজ করছি 79 00:04:20,740 --> 00:04:23,480 আপ বিভিন্ন নেওয়া উপস্থিত RAM- র মধ্যে স্থান পরিমাণে. 80 00:04:23,480 --> 00:04:27,600 তাই প্রত্যেক সময় আপনি একটি পূর্ণসংখ্যা তৈরি মেমরি পরিবর্তনশীল, চার বাইট 81 00:04:27,600 --> 00:04:30,750 আপনি যাতে উপস্থিত RAM- র মধ্যে সেট করা হয় একপাশে যে পূর্ণসংখ্যা সঙ্গে কাজ করতে পারেন. 82 00:04:30,750 --> 00:04:34,260 আপনি পূর্ণসংখ্যা ডিক্লেয়ার করতে পারেন, এটা পরিবর্তন, তা নির্ধারণ করুন 83 00:04:34,260 --> 00:04:36,700 মান বৃদ্ধি একটি মান 10 এক, তাই এবং তাই করে. 84 00:04:36,700 --> 00:04:39,440 এ যে ঘটতে প্রয়োজন সকল উপস্থিত RAM- র, এবং আপনি চার বাইট পেতে 85 00:04:39,440 --> 00:04:42,550 ভাষার সঙ্গে কাজ করার আপনার তৈরি করা পূর্ণসংখ্যা. 86 00:04:42,550 --> 00:04:45,410 >> প্রত্যেক অক্ষর আপনি তৈরি এক বাইট পায়. 87 00:04:45,410 --> 00:04:48,160 যে স্থান ঠিক কত কী একটি অক্ষর ধারণ করার প্রয়োজন. 88 00:04:48,160 --> 00:04:51,310 প্রতিটি ভাসা, একটি বাস্তব সংখ্যা, চার বাইট পায় 89 00:04:51,310 --> 00:04:53,390 এটি একটি ডবল যদি না স্পষ্টতা ফ্লোটিং পয়েন্ট 90 00:04:53,390 --> 00:04:56,510 যার সাহায্যে আপনি সংখ্যা, আরো সুনির্দিষ্ট বা তার বেশি সংখ্যার আছে 91 00:04:56,510 --> 00:04:59,300 দশমিক বিন্দু পরে স্পষ্টতা হারানো ছাড়া, 92 00:04:59,300 --> 00:05:01,820 যা মেমরির আট বাইট লাগতে. 93 00:05:01,820 --> 00:05:06,730 দীর্ঘ longs, সত্যিই বড় ইন্টিজার, স্মরণশক্তির আট বাইট লাগতে. 94 00:05:06,730 --> 00:05:09,000 কত মেমরি বাইট স্ট্রিং লাগতে না? 95 00:05:09,000 --> 00:05:12,990 ওয়েল এর যে প্রশ্নে একটি পিন করা যাক এখন জন্য, কিন্তু আমরা তা ফিরে আসবো. 96 00:05:12,990 --> 00:05:17,350 >> তাই ফিরে মেমরি এই ধারণা হিসাবে বাইট আকারের কোষের একটি বড় অ্যারে. 97 00:05:17,350 --> 00:05:20,871 যে সত্যিই এটা হয় সব, এটা কোষের শুধু একটি বিশাল অ্যারে, 98 00:05:20,871 --> 00:05:23,370 শুধু অন্য কোন অ্যারের মত যে আপনার সাথে পরিচিত হন এবং দেখুন, 99 00:05:23,370 --> 00:05:26,430 প্রতিটি উপাদান ছাড়া এক বাইট চওড়া. 100 00:05:26,430 --> 00:05:30,030 এবং শুধু একটি অ্যারের মত, প্রতিটি উপাদান একটি ঠিকানা আছে. 101 00:05:30,030 --> 00:05:32,120 একটি অ্যারের প্রতিটি উপাদান একটি সূচক, এবং আমরা আছে 102 00:05:32,120 --> 00:05:36,302 তথাকথিত করতে যে সূচক ব্যবহার করতে পারেন শৃঙ্খলার র্যান্ডম এক্সেস. 103 00:05:36,302 --> 00:05:38,510 আমরা এ শুরু করতে হবে না অ্যারের শুরুতে, 104 00:05:38,510 --> 00:05:40,569 ভাষার মাধ্যমে বারবার একক উপাদান উহার 105 00:05:40,569 --> 00:05:41,860 আমরা যা খুঁজছেন তা খুঁজে পেতে. 106 00:05:41,860 --> 00:05:45,790 আমরা শুধু আমি পেতে চান, বলতে পারেন 15 উপাদান বা 100th উপাদান. 107 00:05:45,790 --> 00:05:49,930 এবং আপনি ঠিক যে সংখ্যা প্রেরণ করতে পারেন এবং আপনি যা খুঁজছেন মূল্য পেতে. 108 00:05:49,930 --> 00:05:54,460 >> একইভাবে প্রতি পাঁচ যা মেমরির মধ্যে একটি ঠিকানা আছে. 109 00:05:54,460 --> 00:05:57,320 তাই আপনার মেমরি পারে ভালো কিছু দেখবে. 110 00:05:57,320 --> 00:06:01,420 এখানে একটি খুব ছোট খণ্ড মেমরি, এই মেমরি 20 বাইট. 111 00:06:01,420 --> 00:06:04,060 প্রথম 20 বাইট কারণ আমার নীচে আছে ঠিকানাগুলি 112 00:06:04,060 --> 00:06:08,890 3, 2, 1, 0, এবং তাই 19 পর্যন্ত সব পথে. 113 00:06:08,890 --> 00:06:13,190 আর আমি ভেরিয়েবল ডিক্লেয়ার যখন আমি তাদের সঙ্গে কাজ শুরু হলে, 114 00:06:13,190 --> 00:06:15,470 সিস্টেম স্থাপন করতে যাচ্ছে আমার জন্য সরাইয়া কিছু স্থান 115 00:06:15,470 --> 00:06:17,595 এই মেমরি কাজ করতে আমার ভেরিয়েবল সঙ্গে. 116 00:06:17,595 --> 00:06:21,610 তাই আমি গৃহস্থালি সি মূলধন সমান বলতে পারে, এইচ আর কি ঘটতে যাচ্ছে? 117 00:06:21,610 --> 00:06:23,880 ওয়েল সিস্টেম যাচ্ছে আমার এক বাইট জন্য সেট একপাশে. 118 00:06:23,880 --> 00:06:27,870 এই ক্ষেত্রে এটি বাইট নম্বর নেওয়া হয়েছে চার, অঙ্ক চার বাইট, 119 00:06:27,870 --> 00:06:31,310 এবং এটি সংরক্ষণ করে যাচ্ছে আমার জন্য সেখানে চিঠি মূলধন এইচ. 120 00:06:31,310 --> 00:06:34,350 আমি তখন কোন int গতি যদি বলি সীমা এটা, 65 সমান 121 00:06:34,350 --> 00:06:36,806 সরাইয়া থেকে চার যাচ্ছে আমার জন্য মেমরি বাইট. 122 00:06:36,806 --> 00:06:39,180 এবং সেই আচরণ যাচ্ছে একটি একক ইউনিট হিসেবে চার বাইট 123 00:06:39,180 --> 00:06:41,305 আমরা কাজ করছি কি কারণ সঙ্গে এখানে একটি পূর্ণসংখ্যা. 124 00:06:41,305 --> 00:06:44,350 এবং এটা আছে 65 সংরক্ষণ করে যাচ্ছে. 125 00:06:44,350 --> 00:06:47,000 >> এখন থেকেই আমি ধরনের আছি আপনি একটি মিথ্যা একটি বিট বলছে, 126 00:06:47,000 --> 00:06:50,150 ঠিক আছে, আমরা জানি যে কারণ কম্পিউটার বাইনারি কাজ. 127 00:06:50,150 --> 00:06:53,100 তারা বুঝতে পারে না অগত্যা একটি মূলধন এইচ কি 128 00:06:53,100 --> 00:06:57,110 বা 65 তারা শুধুমাত্র, কি বাইনারি, zeros এবং বেশী বুঝতে. 129 00:06:57,110 --> 00:06:59,000 তাই আসলে কি আমরা সেখানে সংরক্ষণ করছেন 130 00:06:59,000 --> 00:07:03,450 অক্ষর এইচ সংখ্যা 65, নয় বরং বাইনারি উপস্থাপনা 131 00:07:03,450 --> 00:07:06,980 উহার যা চেহারা একটি এই মত সামান্য কিছু. 132 00:07:06,980 --> 00:07:10,360 আর বিশেষ পূর্ণসংখ্যা পরিবর্তনশীল প্রেক্ষাপটে, 133 00:07:10,360 --> 00:07:13,559 এটা ঠিক তা থুতু যাচ্ছে না এটা এক চার হিসেবে বিবেচনা করা যাচ্ছে না 134 00:07:13,559 --> 00:07:15,350 বাইট খণ্ড অগত্যা এটা আসলে যাচ্ছে 135 00:07:15,350 --> 00:07:19,570 চার এক বাইট অংশ হিসেবে বিবেচনা করা, যা ভালো কিছু চেহারা হতে পারে. 136 00:07:19,570 --> 00:07:22,424 এবং এমনকি এই নয় সম্পূর্ণরূপে সত্য হয়, 137 00:07:22,424 --> 00:07:24,840 কিছু বলা, কারণ আমরা পারব না, যা একটি endianness, 138 00:07:24,840 --> 00:07:26,965 এখন ঢোকা যাচ্ছে কিন্তু আপনার সম্পর্কে জানতে আগ্রহী, 139 00:07:26,965 --> 00:07:29,030 আপনি একটু উপর পড়তে পারে এবং বড় endianness. 140 00:07:29,030 --> 00:07:31,640 কিন্তু এই তর্কের খাতিরে, এই ভিডিওটি অনুরোধে জন্য, 141 00:07:31,640 --> 00:07:34,860 এর ঠিক যে, হয় অনুমান করা যাক আসলে, কিভাবে সংখ্যা 65 would 142 00:07:34,860 --> 00:07:36,970 প্রতিনিধিত্ব করা প্রতি সিস্টেমে মেমরি, 143 00:07:36,970 --> 00:07:38,850 এটা সম্পূর্ণরূপে সত্য নয়, যদিও. 144 00:07:38,850 --> 00:07:41,700 >> কিন্তু এর আসলে ঠিক করতে দেওয়া সম্পূর্ণরূপে সব বাইনারি পরিত্রাণ, 145 00:07:41,700 --> 00:07:44,460 এবং মাত্র এইচ হিসেবে আমার মনে হয় এবং 65, এটা অনেক সহজ 146 00:07:44,460 --> 00:07:47,900 মত এটা সম্পর্কে চিন্তা করা একটি মানুষের হিসাবে যে. 147 00:07:47,900 --> 00:07:51,420 ঠিক আছে, এটা মনে হয় তাই হয়তো একটি একটু র্যান্ডম যে I've- আমার সিস্টেম 148 00:07:51,420 --> 00:07:55,130 বাইট 5, 6, 7 আমাকে দিতে হবে না, এবং 8 পূর্ণসংখ্যা সংরক্ষণ করতে. 149 00:07:55,130 --> 00:07:58,580 যে জন্য একটি কারণ, খুব, আছে যা আমরা এই মুহূর্তে ঢোকা কিন্তু যথেষ্ট হবে না 150 00:07:58,580 --> 00:08:00,496 এটা যে কি বলতে কম্পিউটার এখানে করছে 151 00:08:00,496 --> 00:08:02,810 সম্ভবত তার পক্ষ থেকে একটি ভাল পদক্ষেপ. 152 00:08:02,810 --> 00:08:06,020 আমার যে মেমরি দিতে না অগত্যা ফিরে যাও. 153 00:08:06,020 --> 00:08:10,490 এটা এখন এটা করতে যাচ্ছে যদিও আমি অন্য স্ট্রিং পেতে চান তাহলে, 154 00:08:10,490 --> 00:08:13,080 উপাধি বলা হয়, এবং আমি চাই সেখানে লয়েড করা. 155 00:08:13,080 --> 00:08:18,360 আমি এক মাপসই প্রয়োজন যাচ্ছি চরিত্র, যে প্রতিটি চিঠি 156 00:08:18,360 --> 00:08:21,330 এক প্রয়োজন যাচ্ছে চরিত্র, মেমরি এক বাইট. 157 00:08:21,330 --> 00:08:26,230 আমি আমার অ্যারের মধ্যে লয়েড লাগাতে পারে, তাই যদি ভালো আমি সঠিক, যেতে বেশ ভাল আছি? 158 00:08:26,230 --> 00:08:28,870 কি অনুপস্থিত? 159 00:08:28,870 --> 00:08:31,840 >> ভাষার স্ট্রিং আমরা কাজ করে মনে রাখবেন গ ব্যাকস্ল্যাশ শূন্য দিয়ে শেষ হয় এ নিয়ে, 160 00:08:31,840 --> 00:08:33,339 এবং আমরা হয়, এখানে যে বর্জন না করতে পারেন. 161 00:08:33,339 --> 00:08:36,090 আমরা একপাশে এক বাইট সেট প্রয়োজন মেমরি তাই আমরা যে রাখা 162 00:08:36,090 --> 00:08:39,130 আমাদের স্ট্রিং শেষ হয়েছে যখন জানেন. 163 00:08:39,130 --> 00:08:41,049 তাই আবার এই ব্যবস্থা উপায় জিনিস 164 00:08:41,049 --> 00:08:42,799 মেমরি যথাসাধ্য প্রদর্শিত একটু র্যান্ডম হতে 165 00:08:42,799 --> 00:08:44,870 কিন্তু এটা আসলে কিভাবে হয় সবচেয়ে সিস্টেম ডিজাইন করা হয়. 166 00:08:44,870 --> 00:08:48,330 গুণিতক তাদের রেখায় আপ চার, কারণে আবার 167 00:08:48,330 --> 00:08:50,080 আমরা প্রয়োজন হবে না যে এই মুহূর্তে ঢোকা. 168 00:08:50,080 --> 00:08:53,060 কিন্তু এই এত যে এটা বলার জন্য যথেষ্ট কোড এই তিনটি লাইন পরে, 169 00:08:53,060 --> 00:08:54,810 এই স্মৃতি মত চেহারা হতে পারে কি. 170 00:08:54,810 --> 00:08:58,930 আমি মেমরি অবস্থানে প্রয়োজন হলে 4, 8, এবং 12, আমার তথ্য রাখা 171 00:08:58,930 --> 00:09:01,100 এই আমার স্মৃতি মত চেহারা হতে পারে কি. 172 00:09:01,100 --> 00:09:04,062 >> আর শুধু বিশেষ হতে এখানে, যখন গোঁড়া 173 00:09:04,062 --> 00:09:06,020 আমরা মেমরি বিষয়ে কথা বলছি ঠিকানা সাধারণত আমরা 174 00:09:06,020 --> 00:09:08,390 তাই হেক্সাডেসিমেল স্বরলিপি ব্যবহার করতে. 175 00:09:08,390 --> 00:09:12,030 তাই কেন আমরা এই সব রূপান্তর না হেক্সাডেসিমেল স্বরলিপি দশমিক থেকে 176 00:09:12,030 --> 00:09:15,010 শুধু যে সাধারণত কারণ কীভাবে আমরা মেমরি পড়ুন. 177 00:09:15,010 --> 00:09:17,880 সুতরাং পরিবর্তে মাধ্যমে 0 হচ্ছে 19, যা আছে তা হল শূন্য 178 00:09:17,880 --> 00:09:20,340 শূন্য X1 তিনটি মাধ্যমে X শূন্য. 179 00:09:20,340 --> 00:09:23,790 যারা মেমরি 20 বাইট হয় আমরা বা আমরা এই ছবিতে এ খুঁজছেন আছে 180 00:09:23,790 --> 00:09:25,540 এখানেই. 181 00:09:25,540 --> 00:09:29,310 >> সুতরাং যে বলেন হচ্ছে সব, এর দিন একটি দ্বিতীয় জন্য মেমরি থেকে সরে 182 00:09:29,310 --> 00:09:30,490 এবং ফিরে পয়েন্টার. 183 00:09:30,490 --> 00:09:32,420 এখানে সবচেয়ে গুরুত্বপূর্ণ বিষয় মনে রাখতে হবে 184 00:09:32,420 --> 00:09:34,070 আমরা পয়েন্টার সাথে কাজ শুরু করেন. 185 00:09:34,070 --> 00:09:36,314 একটি পয়েন্টার কিছুই নয় একটি ঠিকানা বেশী. 186 00:09:36,314 --> 00:09:38,230 আমি আবার, কারণ এটা বলবো এটা খুবই গুরুত্বপূর্ণ যে 187 00:09:38,230 --> 00:09:42,730 একটি পয়েন্টার কিছুই নয় একটি ঠিকানা বেশী. 188 00:09:42,730 --> 00:09:47,760 পয়েন্টার অবস্থানে ঠিকানাগুলো যা মেমরির মধ্যে ভেরিয়েবল যেখানে বসবাস. 189 00:09:47,760 --> 00:09:52,590 এটা আশা হয়ে যে জানা সহজ সামান্য বিট তাদের সঙ্গে কাজ করতে. 190 00:09:52,590 --> 00:09:54,550 আমি চাই আরেকটি বিষয় করতে সাজান আছে 191 00:09:54,550 --> 00:09:58,510 দৃশ্যত কি প্রতিনিধিত্বমূলক ডায়াগ্রামে কোড বিভিন্ন লাইনের সঙ্গে ঘটছে. 192 00:09:58,510 --> 00:10:00,660 এবং আমরা এই একটি দম্পতি করতে হবে পয়েন্টার মধ্যে সময়ের, 193 00:10:00,660 --> 00:10:03,354 এবং আমরা গতিশীল সম্পর্কে কথা বলতে হলে মেমরি বরাদ্দ হিসাবে ভাল. 194 00:10:03,354 --> 00:10:06,020 আমি এই চিত্র মনে করেন যে কারণ বিশেষ সহায়ক হতে পারে. 195 00:10:06,020 --> 00:10:09,540 >> আমি উদাহরণস্বরূপ বলতে যদি তাই হয়, কোন int ট আমার কোড, কি ঘটছে? 196 00:10:09,540 --> 00:10:12,524 ভাল মূলত কি ঘটছে আমি আমার জন্য সরাইয়া সেট স্মৃতি পেয়ে করছি 197 00:10:12,524 --> 00:10:14,690 কিন্তু আমি এমনকি পছন্দ করি না আমি যে ভালো এটা আমার মনে হয় 198 00:10:14,690 --> 00:10:16,300 একটি বাক্স মত এটা সম্পর্কে ভাবতে চাই. 199 00:10:16,300 --> 00:10:20,090 আমি একটি বক্স আছে এবং এটি রঙ্গিন সবুজ আমি কারণ 200 00:10:20,090 --> 00:10:21,750 সবুজ বাক্সে পূর্ণসংখ্যার লাগাতে পারেন. 201 00:10:21,750 --> 00:10:23,666 এটি একটি অক্ষর আমি যদি একটি নীল বাক্সে থাকতে পারে. 202 00:10:23,666 --> 00:10:27,290 আমি তৈরি করছি কিন্তু যদি আমি সবসময় বলে পূর্ণসংখ্যার ধরে রাখতে পারেন যে একটি বক্স 203 00:10:27,290 --> 00:10:28,950 যে বাক্সে সবুজ রঙ্গিন হয়. 204 00:10:28,950 --> 00:10:33,020 আর আমি একটি স্থায়ী মার্কারের নিতে এবং আমি এটা পাশ দিয়ে k লিখতে. 205 00:10:33,020 --> 00:10:37,590 তাই আমি, K নামক একটি বক্স আছে যার মধ্যে আমি পূর্ণসংখ্যার লাগাতে পারেন. 206 00:10:37,590 --> 00:10:41,070 আমি int K বলে যখন, যে কি আমার মাথা হতে থাকে. 207 00:10:41,070 --> 00:10:43,140 আমি কে পাঁচটি সমান বলে থাকেন, আমি কি করছি? 208 00:10:43,140 --> 00:10:45,110 ওয়েল, আমি পাঁচটি নির্বাণ করছি বক্সে, ঠিক আছে. 209 00:10:45,110 --> 00:10:48,670 এই যদি, বেশ সহজবোধ্য আমি int ট, ট নামক একটি বক্স তৈরি বলে. 210 00:10:48,670 --> 00:10:52,040 তাহলে আমি কে 5 সমান বলে বক্সের মধ্যে পাঁচটি করা. 211 00:10:52,040 --> 00:10:53,865 আশা করছি যে একটি লীপ অত্যধিক নয়. 212 00:10:53,865 --> 00:10:55,990 কিছু একটা হয়ে যেতে এখানে যেখানে যদিও আকর্ষণীয় সামান্য. 213 00:10:55,990 --> 00:11:02,590 আমি int * PK যদি বলি, আমি ভাল না, এমনকি যদি এই অগত্যা মানে কি জানেন, 214 00:11:02,590 --> 00:11:06,150 এটা স্পষ্ট কিছু পেয়েছিলাম একটি পূর্ণসংখ্যা সঙ্গে কাজ করতে. 215 00:11:06,150 --> 00:11:08,211 তাই আমি রং যাচ্ছি সবুজ পর এই বক্স, 216 00:11:08,211 --> 00:11:10,210 আমি এটা কিছু পেয়েছিলাম জানেন একটি পূর্ণসংখ্যা সঙ্গে কাজ করতে, 217 00:11:10,210 --> 00:11:13,400 কিন্তু এটি একটি পূর্ণসংখ্যা নিজেই না, এটা কোন int তারকা কারণ. 218 00:11:13,400 --> 00:11:15,390 কিছু সামান্য আছে এটি সম্পর্কে বিভিন্ন. 219 00:11:15,390 --> 00:11:17,620 সুতরাং একটি পূর্ণসংখ্যা জড়িত, কিন্তু অন্যথায় এটা 220 00:11:17,620 --> 00:11:19,830 থেকে খুব ভিন্ন নয় আমরা কি বিষয়ে কথা হয়েছে. 221 00:11:19,830 --> 00:11:24,240 এটি একটি বক্স, তার একটি ট্যাগ পেয়েছিলাম এটি একটি ট্যাগ PK পরা, 222 00:11:24,240 --> 00:11:27,280 এবং তা ধারণ করতে সক্ষম ঐ যাই হোক না কেন কোন int তারার মতো. 223 00:11:27,280 --> 00:11:29,894 তারা কি কিছু আছে পূর্ণসংখ্যার স্পষ্টতর. 224 00:11:29,894 --> 00:11:31,060 এখানে শেষ লাইন যদিও এর. 225 00:11:31,060 --> 00:11:37,650 যদি আমি বলি PK = & K, দাঁড়ান, কি ঠিক ঠিক, ঘটেছে? 226 00:11:37,650 --> 00:11:41,820 সুতরাং এই র্যান্ডম সংখ্যা, আপাতদৃষ্টিতে র্যান্ডম সংখ্যা, সেখানে বক্সে ফেলে দেওয়া হয়. 227 00:11:41,820 --> 00:11:44,930 যে সকল, PK হয় K এর অঙ্ক পায়. 228 00:11:44,930 --> 00:11:52,867 K মেমরির মধ্যে বসবাস যেখানে তাই আমি স্টিকিং করছি, তার ঠিকানা, তার বাইট এর ঠিকানা. 229 00:11:52,867 --> 00:11:55,200 আমি করছি সব আমি বলার অপেক্ষা রাখে না হয় যে মূল্য আমি যাচ্ছি কি 230 00:11:55,200 --> 00:11:59,430 আমার বক্স বলা PK ভেতরে রাখা. 231 00:11:59,430 --> 00:12:02,080 আর এই জিনিস কারণ পয়েন্টার, এবং খুঁজছেন কারণ 232 00:12:02,080 --> 00:12:04,955 শূন্য X মত একটি পংক্তি এ আট শূন্য সি সাত আট চার 233 00:12:04,955 --> 00:12:07,790 দুটি শূন্য সম্ভবত খুব অর্থপূর্ণ না. 234 00:12:07,790 --> 00:12:12,390 আমরা সাধারণত পয়েন্টার ঠাহর যখন, আমরা আসলে পয়েন্টার দিয়ে যাচ্ছেন. 235 00:12:12,390 --> 00:12:17,000 PK আমাদের তথ্য দেয় আমরা যা মেমরির মধ্যে K খুঁজে পাওয়া প্রয়োজন. 236 00:12:17,000 --> 00:12:19,120 তাই মূলত PK এটা একটি তীর আছে. 237 00:12:19,120 --> 00:12:21,670 আর আমরা দৈর্ঘ্য হেটে যদি যে তীর, কল্পনা 238 00:12:21,670 --> 00:12:25,280 আপনার হাঁটিতে পারে এমন কিছু, আমরা যদি তীর দৈর্ঘ্য বরাবর হেটে, 239 00:12:25,280 --> 00:12:29,490 যে তীর খুব ডগা, আমরা স্মৃতিতে পাঁচ পাবেন 240 00:12:29,490 --> 00:12:31,390 যেখানে K বসবাস. 241 00:12:31,390 --> 00:12:34,360 এবং যে সত্যিই গুরুত্বপূর্ণ K বসবাস যেখানে আমরা জানি একবার কারণ, 242 00:12:34,360 --> 00:12:37,870 আমরা তথ্য দিয়ে কাজ শুরু করতে পারেন যে মেমরি পাঁচ ভেতরে. 243 00:12:37,870 --> 00:12:40,780 আমরা একটি পুঁচকে পেয়ে থাকেন যদিও এখন এগিয়ে নিজেদেরকে বিট. 244 00:12:40,780 --> 00:12:42,240 >> সুতরাং একটি পয়েন্টার কি? 245 00:12:42,240 --> 00:12:45,590 একটি পয়েন্টার যার একটি উপাত্তের হয় মূল্য একটি মেমরি ঠিকানা. 246 00:12:45,590 --> 00:12:49,740 যে ছিল শূন্য X আট শূন্য কাপড় যে যাওয়া, যে একটি মেমরি ঠিকানা ছিল. 247 00:12:49,740 --> 00:12:52,060 মেমরি যে একটি অবস্থান ছিল. 248 00:12:52,060 --> 00:12:55,080 এবং একটি পয়েন্টার টাইপ ধরণের বর্ণনা 249 00:12:55,080 --> 00:12:56,930 তথ্য আপনি এ পাবেন যে মেমরি ঠিকানা. 250 00:12:56,930 --> 00:12:58,810 সুতরাং কোন int তারকা অংশ ঠিক আছে. 251 00:12:58,810 --> 00:13:03,690 আমি যে তীর অনুসরণ করে, এটা একটি অবস্থান সম্পর্কে নেতৃত্ব যাচ্ছে. 252 00:13:03,690 --> 00:13:06,980 এবং যে অবস্থান, তা আমি আমার যেমন আপনি সেখানে দেখতে পাবেন, 253 00:13:06,980 --> 00:13:08,240 একটি সবুজ রঙের বাক্স. 254 00:13:08,240 --> 00:13:12,650 এটা যে কি, একটি পূর্ণসংখ্যা আমি আমি যে ঠিকানায় যান তাহলে পাবেন. 255 00:13:12,650 --> 00:13:14,830 একটি ডাটা টাইপ পয়েন্টার কি বর্ণনা 256 00:13:14,830 --> 00:13:17,936 আপনি যে মেমরি ঠিকানায় পাবেন. 257 00:13:17,936 --> 00:13:19,560 তাই এখানে যদিও সত্যিই শীতল জিনিস. 258 00:13:19,560 --> 00:13:25,090 পয়েন্টার আমাদের পাস করার অনুমতি ফাংশন মধ্যে ভেরিয়েবল. 259 00:13:25,090 --> 00:13:28,520 এবং আসলে ভেরিয়েবল পাস এবং তাদের কপি পাস না. 260 00:13:28,520 --> 00:13:32,879 আমরা জানি কারণ যদি ঠিক যেখানে মেমরি একটি পরিবর্তনশীল এটি, 261 00:13:32,879 --> 00:13:35,670 আমরা একটি কপি করতে হবে না এটা, আমরা শুধু যে পাঁচ যেতে পারেন 262 00:13:35,670 --> 00:13:37,844 এবং যে পরিবর্তনশীল সঙ্গে কাজ. 263 00:13:37,844 --> 00:13:40,260 সারাংশ পয়েন্টার তাই সাজান একটি কম্পিউটার পরিবেশের করতে 264 00:13:40,260 --> 00:13:42,360 আরো অনেক বাস্তব বিশ্বের মত, ঠিক আছে. 265 00:13:42,360 --> 00:13:44,640 >> তাই এখানে একটি উপমা এর. 266 00:13:44,640 --> 00:13:48,080 আমি একটা নোটবুক আছে যে বলা যাক, ঠিক আছে, এবং এটা নোট পূর্ণ. 267 00:13:48,080 --> 00:13:50,230 আমি তোমাদের কাছে এর আপডেট চাই. 268 00:13:50,230 --> 00:13:53,960 আপনি একটি ফাংশন আছে আপডেট নোট, ঠিক আছে. 269 00:13:53,960 --> 00:13:56,390 উপায় আমরা চলেছি এ পর্যন্ত কাজ, কি 270 00:13:56,390 --> 00:14:02,370 আপনি আমার নোটবুক নিতে হবে কি হয়, আপনি, কপি দোকান থেকে যাবেন 271 00:14:02,370 --> 00:14:06,410 আপনি একটি জেরক্স কপি করতে হবে নোটবুক প্রতিটি পৃষ্ঠায়. 272 00:14:06,410 --> 00:14:09,790 আপনি ফিরে আমার নোটবুক ছেড়ে দেব আমার ডেস্কের উপর যখন আপনি কাজ করছেন, 273 00:14:09,790 --> 00:14:14,600 আপনি যান এবং অনেক কিছু ক্রুশ আউট করব আমার তারিখ বা ভুল বাইরে নোটবুক, 274 00:14:14,600 --> 00:14:19,280 এবং তারপর ফিরে পাস করব আমার জেরক্স পেজের স্ট্যাক 275 00:14:19,280 --> 00:14:22,850 যে আমার নোটবুক একটি প্রতিরূপ সঙ্গে হয় আপনি এটা করতে তৈরি করেছি যে পরিবর্তন. 276 00:14:22,850 --> 00:14:27,040 এবং যে সময়ে, এটা যেমন আমার উপর কলিং ফাংশন, কলার যেমন, 277 00:14:27,040 --> 00:14:30,582 আপনার নোট গ্রহণ করার সিদ্ধান্ত নেন এবং আমার নোটবুক সেগুলি ফিরে সংহত. 278 00:14:30,582 --> 00:14:32,540 সেজন্য পদক্ষেপ অনেক আছে এখানে জড়িত, ঠিক আছে. 279 00:14:32,540 --> 00:14:34,850 ভালো লেগেছে এটা ভালো হবে না আমি শুধু বলি, আরে, আপনি যা করতে পারেন 280 00:14:34,850 --> 00:14:38,370 আমার নোটবুক আপডেট আমার, আপনি আমার নোটবুক হাতে 281 00:14:38,370 --> 00:14:40,440 এবং আপনি জিনিষ নিতে এবং আক্ষরিক তাদের ক্রুশ আউট 282 00:14:40,440 --> 00:14:42,810 এবং আমার নোটবুক আমার নোট আপডেট করুন. 283 00:14:42,810 --> 00:14:45,140 এবং তারপর আমার নোটবুক ফেরত দিতে. 284 00:14:45,140 --> 00:14:47,320 যে ধরনের কি পয়েন্টার, আমাদের কাজ করার অনুমতি দেয় 285 00:14:47,320 --> 00:14:51,320 তারা এই পরিবেশে অনেক করতে আমরা বাস্তবে কিভাবে অপারেট মত আরো. 286 00:14:51,320 --> 00:14:54,640 >> যাতে ঠিক কি একটি পয়েন্টার, এর কথা বলা যাক হয় 287 00:14:54,640 --> 00:14:58,040 পয়েন্টার সি কাজ, এবং কিভাবে সম্পর্কে কিভাবে আমরা তাদের সঙ্গে কাজ শুরু করতে পারেন. 288 00:14:58,040 --> 00:15:02,550 তাই এটি একটি খুব সহজ পয়েন্টার আছে সি নামক নাল পয়েন্টার. 289 00:15:02,550 --> 00:15:04,830 কিছুই করার নাল পয়েন্টার পয়েন্ট. 290 00:15:04,830 --> 00:15:08,310 এটা ভালো এটি সম্ভবত মনে আসলে না খুব দরকারী জিনিস, 291 00:15:08,310 --> 00:15:10,500 কিন্তু আমরা একটি ছবি দেখতে পাবেন পরবর্তী সামান্য, আসলে 292 00:15:10,500 --> 00:15:15,410 এই নাল পয়েন্টার বিদ্যমান যে আসলে সত্যিই উপকারে আসতে পারে. 293 00:15:15,410 --> 00:15:19,090 এবং যদি আপনি একটি পয়েন্টার তৈরি যখনই এবং আপনি তার মূল্য immediately- সেট না 294 00:15:19,090 --> 00:15:21,060 সেটিং একটি উদাহরণ তার মান অবিলম্বে 295 00:15:21,060 --> 00:15:25,401 একজন দম্পতি ফিরে স্লাইড হবে আমি PK & K সমান বলেন যেখানে 296 00:15:25,401 --> 00:15:28,740 PK হিসাবে, K এর ঠিকানা পায় আমরা, এর মানে হল যে কি দেখতে পাবেন 297 00:15:28,740 --> 00:15:32,990 আমরা যে কোড কিভাবে দেখতে পাবেন shortly- আমরা কিছু করতে তার মান সেট না থাকে তাহলে 298 00:15:32,990 --> 00:15:35,380 অবিলম্বে অর্থপূর্ণ, আপনি সবসময় উচিত 299 00:15:35,380 --> 00:15:37,480 নাল নির্দেশ আপনার পয়েন্টার সেট. 300 00:15:37,480 --> 00:15:40,260 আপনি এটা কিছুই করার নির্দেশ সেট করা উচিত. 301 00:15:40,260 --> 00:15:43,614 >> যে এর চেয়ে খুব আলাদা হিসাবে এটা শুধু মান যাব 302 00:15:43,614 --> 00:15:45,530 এবং তারপর একটি ঘোষণা পয়েন্টার এবং শুধু অভিমানী 303 00:15:45,530 --> 00:15:48,042 যে খুব কমই সত্য কারণ এটা নাল. 304 00:15:48,042 --> 00:15:50,000 তাই আপনি সর্বদা সেট করা উচিত একটি পয়েন্টার মান 305 00:15:50,000 --> 00:15:55,690 আপনি তার মূল্য নির্ধারণ করে না থাকে তাহলে নাল অবিলম্বে কিছু অর্থপূর্ণ করার. 306 00:15:55,690 --> 00:15:59,090 আপনি না পরীক্ষা করতে পারবেন একটি পয়েন্টার এর মান কিনা সমতা অপারেটর ব্যবহার নাল 307 00:15:59,090 --> 00:16:05,450 (==), আপনি কোন পূর্ণসংখ্যা তুলনা পছন্দ মান বা চরিত্র মান ব্যবহার (==) 308 00:16:05,450 --> 00:16:06,320 আরো. 309 00:16:06,320 --> 00:16:10,994 এটা ধ্রুব একটি বিশেষ ধরণের আপনি পরীক্ষা করতে ব্যবহার করতে পারেন যে মান. 310 00:16:10,994 --> 00:16:13,160 সুতরাং যে একটি খুব সহজ ছিল পয়েন্টার, নাল পয়েন্টার. 311 00:16:13,160 --> 00:16:15,320 আরেকটি উপায় তৈরি করতে একটি পয়েন্টার নিষ্কাশন করা হয় 312 00:16:15,320 --> 00:16:18,240 একটি পরিবর্তনশীল এর ঠিকানা আপনি ইতিমধ্যে তৈরি করেছি, 313 00:16:18,240 --> 00:16:22,330 এবং আপনি ও এই ব্যবহার করতে অপারেটর অঙ্ক নিষ্কাশন. 314 00:16:22,330 --> 00:16:26,720 যা ইতিমধ্যেই আমরা পূর্বে দেখা করেছি প্রথম চিত্রটি উদাহরণে আমি দেখিয়েছি. 315 00:16:26,720 --> 00:16:31,450 X আমরা করেছি যে একটি পরিবর্তনশীল যদি তাই ইতিমধ্যে টাইপ পূর্ণসংখ্যা নির্মিত, 316 00:16:31,450 --> 00:16:35,110 তারপর ও এক্স একটি পূর্ণসংখ্যা একটি পয়েন্টার. 317 00:16:35,110 --> 00:16:39,810 & এক্স যা-, ও নিষ্কাশন যাচ্ছে মনে ডানদিকে জিনিস অঙ্ক. 318 00:16:39,810 --> 00:16:45,350 এবং একটি পয়েন্টার শুধু একটি ঠিকানা থেকে, তুলনায় & এক্স একটি পূর্ণসংখ্যা একটি পয়েন্টার 319 00:16:45,350 --> 00:16:48,560 যার মূল্য যেখানে মেমরি X জীবনে হয়. 320 00:16:48,560 --> 00:16:50,460 এটা X এর ঠিকানা. 321 00:16:50,460 --> 00:16:53,296 সুতরাং & এক্স এক্স এর ঠিকানা. 322 00:16:53,296 --> 00:16:55,670 এর এই এক পদক্ষেপ গ্রহণ করা আরও কিছু সাথে সংযোগ 323 00:16:55,670 --> 00:16:58,380 আমি একটি পূর্বে ভিডিওতে উল্লিখিত. 324 00:16:58,380 --> 00:17:06,730 আপনার কীবোর্ড দ্বিগুণ একটি অ্যারের হয়, তাহলে & তীর বর্গাকার বন্ধনী আমি একটি পয়েন্টার 325 00:17:06,730 --> 00:17:08,109 একটি ডবল. 326 00:17:08,109 --> 00:17:08,970 ঠিক আছে. 327 00:17:08,970 --> 00:17:12,160 আমি যদি বর্গাকার বন্ধনী arr আগমন, টেনিস একটি অ্যারে 328 00:17:12,160 --> 00:17:19,069 তারপর আমি হয় বর্গাকার বন্ধনী arr যে অ্যারের আমি-তম উপাদান, 329 00:17:19,069 --> 00:17:29,270 এবং ও বর্গাকার বন্ধনী arr আমি কোথায় হয় মেমরি তীর এর I- তম উপাদান বিদ্যমান. 330 00:17:29,270 --> 00:17:31,790 >> তাই সংশ্লেষ এখানে কি? 331 00:17:31,790 --> 00:17:34,570 একটি অ্যারে নাম, সংশ্লেষ এই গোটা ব্যাপারটাই, 332 00:17:34,570 --> 00:17:39,290 একটি অ্যারে এর নাম হয় আসলে নিজেই একটি পয়েন্টার. 333 00:17:39,290 --> 00:17:41,170 আপনি কাজ করে থাকেন সব বরাবর পয়েন্টার সাথে 334 00:17:41,170 --> 00:17:45,290 আপনি একটি অ্যারের ব্যবহার করেছি যে প্রতি সময়. 335 00:17:45,290 --> 00:17:49,090 উদাহরণ থেকে মনে রেখো পরিবর্তনশীল সুযোগ উপর, 336 00:17:49,090 --> 00:17:53,420 আমি উপস্থাপন ভিডিওর শেষে কাছাকাছি আমরা একটি ফাংশন আছে যেখানে একটি উদাহরণ 337 00:17:53,420 --> 00:17:56,890 বলা সেট int এবং একটি ফাংশন সেট অ্যারে বলা. 338 00:17:56,890 --> 00:18:00,490 এবং আপনার চ্যালেঞ্জ নির্ধারণ কিনা বা না, বা কি 339 00:18:00,490 --> 00:18:03,220 আমরা প্রিন্ট আউট যে মান ফাংশন শেষে, 340 00:18:03,220 --> 00:18:05,960 প্রধান প্রোগ্রাম শেষে. 341 00:18:05,960 --> 00:18:08,740 >> আপনি যে উদাহরণ থেকে প্রত্যাহার হলে অথবা আপনি ভিডিওটি দেখেছেন থাকেন তাহলে, 342 00:18:08,740 --> 00:18:13,080 আপনাকে কল you- যখন জানি যে সেট কোন int কার্যকরভাবে কিছুই না. 343 00:18:13,080 --> 00:18:16,390 কিন্তু কল অ্যারে আছে সেট. 344 00:18:16,390 --> 00:18:19,280 এবং আমি ধরণের কেন ওভার glossed যে সময়ে ক্ষেত্রে ছিল. 345 00:18:19,280 --> 00:18:22,363 আমি শুধু ভাল এটা, এটি একটি অ্যারে, বলেন বিশেষ, আপনি জানেন, একটা কারণ আছে. 346 00:18:22,363 --> 00:18:25,020 কারণ এটা একটা অ্যারে হয় নাম, সত্যিই শুধু একটি পয়েন্টার 347 00:18:25,020 --> 00:18:28,740 এবং এই বিশেষ আছে বর্গাকার বন্ধনী সিনট্যাক্স যে 348 00:18:28,740 --> 00:18:30,510 এর সাথে কাজ করা কিছু অনেক nicer করা. 349 00:18:30,510 --> 00:18:34,410 তাঁরা একটি ধারণা করা অনেক কম ভয় দেখিয়ে পয়েন্টার, 350 00:18:34,410 --> 00:18:36,800 তারা সাজান আছেন যে কেন যে ভাবে উপস্থাপন. 351 00:18:36,800 --> 00:18:38,600 কিন্তু সত্যিই অ্যারে শুধু পয়েন্টার. 352 00:18:38,600 --> 00:18:41,580 এবং যে কেন যখন আমরা , অ্যারের পরিবর্তনটি 353 00:18:41,580 --> 00:18:44,880 আমরা একটি প্যারামিটার হিসেবে একটি অ্যারের পাস হলে একটি ফাংশন বা একটি যুক্তি হিসেবে 354 00:18:44,880 --> 00:18:50,110 অ্যারের একটি ফাংশন, বিষয়বস্তু আসলে উভয় callee মধ্যে পরিবর্তিত 355 00:18:50,110 --> 00:18:51,160 এবং কলার মধ্যে. 356 00:18:51,160 --> 00:18:55,846 প্রতি অন্য ধরনের জন্য যা আমরা দেখেছি পরিবর্তনশীল ক্ষেত্রে ছিল না. 357 00:18:55,846 --> 00:18:58,970 সুতরাং যে রাখা শুধু কিছু আপনি পয়েন্টার সঙ্গে কাজ করছি যখন মনে, 358 00:18:58,970 --> 00:19:01,610 যে একটি নাম অ্যারে আসলে একটি পয়েন্টার 359 00:19:01,610 --> 00:19:04,750 যে অ্যারের প্রথম উপাদান. 360 00:19:04,750 --> 00:19:08,930 >> ঠিক আছে, তাই এখন আমরা এই সব আছে তথ্য, অধিকার, বর্তা যাক. 361 00:19:08,930 --> 00:19:11,370 কেন আমরা যত্ন সম্পর্কে না যেখানে কিছু বসবাস. 362 00:19:11,370 --> 00:19:14,120 আমি আগেই বলেছি আচ্ছা মত, এটা প্রশংসনীয় কিছু কোথায় থাকে দরকারী 363 00:19:14,120 --> 00:19:17,240 তাই আপনি সেখানে যান এবং এটি পরিবর্তন করতে পারেন. 364 00:19:17,240 --> 00:19:19,390 এটা দিয়ে কাজ এবং আসলে জিনিস আছে যে আপনি 365 00:19:19,390 --> 00:19:23,710 যে পরিবর্তনশীল প্রয়োগ করতে চান, এবং এটা কিছু কপি কার্যকর না. 366 00:19:23,710 --> 00:19:26,150 এই dereferencing বলা হয়. 367 00:19:26,150 --> 00:19:28,690 আমরা রেফারেন্স যান এবং আমরা সেখানে মান পরিবর্তন. 368 00:19:28,690 --> 00:19:32,660 আমরা একটি ইশারা আছে এবং যদি তাই এটা বলা হচ্ছে পিসি, এবং এটি একটি চরিত্র স্থানটিকে, 369 00:19:32,660 --> 00:19:40,610 তারপর আমরা * পিসি এবং * পিসি বলতে পারেন আমরা যেতে চান, খুঁজে পাবেন কি নাম 370 00:19:40,610 --> 00:19:42,910 অঙ্ক পিসি. 371 00:19:42,910 --> 00:19:47,860 আমরা কি সেখানে পাবেন একটি চরিত্র এবং * পিসি আমরা যে এ তথ্য পড়ুন কিভাবে হয় 372 00:19:47,860 --> 00:19:48,880 পাঁচ. 373 00:19:48,880 --> 00:19:54,150 তাই আমরা ভালো কিছু বলতে পারে * পিসি = D অথবা যে ভালো কিছু, 374 00:19:54,150 --> 00:19:59,280 এবং যে এর মানে হল যে যাই হোক না কেন , মেমরি অঙ্ক পিসি ছিল 375 00:19:59,280 --> 00:20:07,040 যাই হোক না কেন চরিত্র পূর্বে ছিল আমরা পিসি = D * যদি বলি সেখানে, এখন ঘ. 376 00:20:07,040 --> 00:20:10,090 >> তাই আমরা এখানে দিয়ে আবার যান কিছু অদ্ভুত সি স্টাফ, ঠিক আছে. 377 00:20:10,090 --> 00:20:14,560 সুতরাং আমরা হচ্ছে নাটক * দেখা করেছি একরকম ডাটা টাইপ অংশ, 378 00:20:14,560 --> 00:20:17,160 এবং এখন এটি ব্যবহৃত হচ্ছে কিছুটা ভিন্ন প্রেক্ষাপটে 379 00:20:17,160 --> 00:20:19,605 একটি অবস্থানে তথ্য অ্যাক্সেস করতে. 380 00:20:19,605 --> 00:20:22,480 আমি এটা একটু বিভ্রান্ত জানি এবং যে আসলে এই পুরো অংশ 381 00:20:22,480 --> 00:20:25,740 মত, কেন পয়েন্টার এই পুরাণ আছে তাদের চারপাশে এত জটিল হচ্ছে, 382 00:20:25,740 --> 00:20:28,250 সত্যি বলতে, একটি সিনট্যাক্স সমস্যা ধরনের. 383 00:20:28,250 --> 00:20:31,810 কিন্তু * উভয় প্রেক্ষিতে ব্যবহার করা হয়, উভয় ধরনের নামের অংশ হিসাবে, 384 00:20:31,810 --> 00:20:34,100 এবং আমরা একটু দেখতে পাবেন খুব অন্য কিছু পরে,. 385 00:20:34,100 --> 00:20:36,490 আর এই মুহূর্তে dereference অপারেটর. 386 00:20:36,490 --> 00:20:38,760 সুতরাং এটা রেফারেন্স যায়, এটা ডাটা ব্যবহারের হার 387 00:20:38,760 --> 00:20:43,000 পয়েন্টার পাঁচ, এ এবং আপনি স্বেচ্ছায় এটি পরিবর্তন করা যাবে. 388 00:20:43,000 --> 00:20:45,900 >> এখন এই অনুরূপ আপনার প্রতিবেশী গিয়ে, ঠিক আছে. 389 00:20:45,900 --> 00:20:48,710 যদি আপনি কি জানেন আপনার প্রতিবেশী আপনি আছেন, জীবিত আছেন 390 00:20:48,710 --> 00:20:50,730 আপনার প্রতিবেশীর সঙ্গে ঝুলন্ত আউট না. 391 00:20:50,730 --> 00:20:53,510 আপনি যদি এরকম জানেন তারা যেখানে বসবাস জানি, 392 00:20:53,510 --> 00:20:56,870 কিন্তু যে দ্বারা অর্থ এই নয় যে যে জ্ঞান থাকার শক্তি কর্মদক্ষতার 393 00:20:56,870 --> 00:20:59,170 আপনি তাদের সাথে আলাপচারিতার হয়. 394 00:20:59,170 --> 00:21:01,920 আপনি তাদের সাথে যোগাযোগ করতে চান, আপনি, তাদের বাড়ী যেতে হবে 395 00:21:01,920 --> 00:21:03,760 আপনি যেখানে তারা বাস করতে যেতে হবে. 396 00:21:03,760 --> 00:21:07,440 এবং আপনি যে একবার, তারপর আপনি যোগাযোগ করতে পারবেন 397 00:21:07,440 --> 00:21:09,420 তাদের সঙ্গে আপনি চাই চাই চাই. 398 00:21:09,420 --> 00:21:12,730 আর একইভাবে ভেরিয়েবল সঙ্গে, আপনি তাদের ঠিকানায় যেতে হবে 399 00:21:12,730 --> 00:21:15,320 আপনি তাদের যোগাযোগ করতে চান তাহলে, আপনি শুধু অঙ্ক জানি পারবেন না. 400 00:21:15,320 --> 00:21:21,495 আর আপনি ঠিকানায় যান উপায় *, ডি-রেফারেন্স অপারেটর ব্যবহার করতে. 401 00:21:21,495 --> 00:21:23,620 আপনি কি মনে করেন আমরা চেষ্টা এবং ডি-রেফারেন্স যদি 402 00:21:23,620 --> 00:21:25,260 যার মান একটি নাল পয়েন্টার হয়? 403 00:21:25,260 --> 00:21:28,470 নাল পুনরাহ্বান যে পয়েন্টার কিছুই স্থানটিকে. 404 00:21:28,470 --> 00:21:34,110 আপনি চেষ্টা এবং ডি-রেফারেন্স সুতরাং যদি কিছুই একটি ঠিকানা কিছুই যান বা, 405 00:21:34,110 --> 00:21:36,800 আপনি কি মনে করেন? 406 00:21:36,800 --> 00:21:39,630 আচ্ছা আপনি অনুমিত যদি সেগমেন্টেশন দোষ, আপনি সঠিক হতে চাই. 407 00:21:39,630 --> 00:21:41,390 আপনি চেষ্টা এবং ডি-রেফারেন্স যদি একটি নাল পয়েন্টার, 408 00:21:41,390 --> 00:21:43,140 আপনি একটি সেগমেন্টেশন ভোগে দোষ. কিন্তু অপেক্ষা করো, 409 00:21:43,140 --> 00:21:45,820 আমি যে, আপনাকে বলতে না আপনি যাচ্ছেন না হলে 410 00:21:45,820 --> 00:21:49,220 আপনার মূল্য নির্ধারণ করার জন্য আপনার অর্থপূর্ণ কিছু পয়েন্টার, 411 00:21:49,220 --> 00:21:51,000 আপনি শূন্য নির্ধারণ করা উচিত? 412 00:21:51,000 --> 00:21:55,290 আমি এবং আসলে সেগমেন্টেশন দোষ একটি ভাল ব্যবহার ধরনের. 413 00:21:55,290 --> 00:21:58,680 >> আপনি কি একটি পরিবর্তনশীল ঘোষণা করেছেন অবিলম্বে তার মান নির্ধারিত হয় নি? 414 00:21:58,680 --> 00:22:02,680 তাই আপনি শুধু int x এর বলতে; যদি তা চান না আসলে কিছু করার তা নির্ধারণ করুন 415 00:22:02,680 --> 00:22:05,340 এবং তারপর পরে আপনার কোড মধ্যে, আপনি, x এর মান প্রিন্ট আউট 416 00:22:05,340 --> 00:22:07,650 এখনও না থাকার কিছু করার তা নির্ধারিত হয়. 417 00:22:07,650 --> 00:22:10,370 প্রায়ই আপনি পাবেন শূন্য, কিন্তু কখনও কখনও আপনি 418 00:22:10,370 --> 00:22:15,000 কিছু র্যান্ডম সংখ্যা পেতে, এবং পারে আপনি এটি থেকে এসেছেন যেখানে কোন ধারণা আছে. 419 00:22:15,000 --> 00:22:16,750 একইভাবে কিছু করতে পারেন পয়েন্টার সঙ্গে ঘটেছে. 420 00:22:16,750 --> 00:22:20,110 আপনি একটি পয়েন্টার ডিক্লেয়ার কোন int * উদাহরণস্বরূপ PK, 421 00:22:20,110 --> 00:22:23,490 এবং যদি আপনি একটি মূল্য তা নির্ধারণ না আপনি মেমরি জন্য চার বাইট পেতে. 422 00:22:23,490 --> 00:22:25,950 যাই হোক না কেন চার বাইট সিস্টেম মেমরি পারেন 423 00:22:25,950 --> 00:22:28,970 কিছু অর্থপূর্ণ মান আছে খুঁজে. 424 00:22:28,970 --> 00:22:31,760 হয়েছে সেখানে পারে ইতিমধ্যে সেখানে এমন কিছু 425 00:22:31,760 --> 00:22:34,190 অন্য প্রয়োজনীয় আর হয় ফাংশন, আপনি শুধু আছে তাই 426 00:22:34,190 --> 00:22:35,900 যাই হোক না কেন তথ্য ছিল. 427 00:22:35,900 --> 00:22:40,570 >> আপনি কি ডি-রেফারেন্স করতে চেষ্টা যদি আপনি সেখানে don't- যে কিছু অঙ্ক 428 00:22:40,570 --> 00:22:43,410 ইতিমধ্যে বাইট এবং তথ্য সেখানে, যে আপনার পয়েন্টার এখন এর. 429 00:22:43,410 --> 00:22:47,470 , আপনি চেষ্টা করুন এবং যে পয়েন্টার ডি-রেফারেন্স আপনি কিছু স্মৃতি সঙ্গে সেনাবিভাগে মেসে খাবার হতে পারে 430 00:22:47,470 --> 00:22:49,390 আপনি চানও নি যে এটা সব সঙ্গে জগাখিচুড়ি. 431 00:22:49,390 --> 00:22:51,639 এবং আসলে আপনি কাজ করতে পারে সত্যিই বিধ্বংসী কিছু, 432 00:22:51,639 --> 00:22:54,880 ভালো বা অন্য প্রোগ্রাম বিরতি, অথবা, অন্য ফাংশন বিরতি 433 00:22:54,880 --> 00:22:58,289 অথবা যে দূষিত কিছু না আপনি এ সব কি করতে চানও নি. 434 00:22:58,289 --> 00:23:00,080 এটা কেন এবং যাতে আসলে একটি ভাল ধারণা 435 00:23:00,080 --> 00:23:04,030 আপনি যদি নাল আপনার পয়েন্টার সেট অর্থপূর্ণ কিছু তাদের সেট না. 436 00:23:04,030 --> 00:23:06,760 এটা এ সম্ভবত ভালো আপনার প্রোগ্রামের জন্য দিনের শেষে 437 00:23:06,760 --> 00:23:09,840 এটা কি জন্য তারপর বিপর্যস্ত কিছু যে স্ক্রু আপ 438 00:23:09,840 --> 00:23:12,400 অন্য প্রোগ্রাম বা অন্য ফাংশন. 439 00:23:12,400 --> 00:23:15,207 যে আচরণ এমনকি সম্ভবত শুধু বিপর্যয় কম আদর্শ. 440 00:23:15,207 --> 00:23:17,040 এটা কেন এবং যাতে আসলে একটি ভাল অভ্যাস 441 00:23:17,040 --> 00:23:20,920 আপনার পয়েন্টার সেট ঢোকা আপনি তাদের সেট না থাকে তাহলে নাল 442 00:23:20,920 --> 00:23:24,540 একটি অর্থপূর্ণ মান আপনি জানেন যে, অবিলম্বে একটি মান 443 00:23:24,540 --> 00:23:27,260 এবং যে আপনি ডি-রেফারেন্স নিরাপদে পারেন. 444 00:23:27,260 --> 00:23:32,240 >> তাই আসুন এখন ফিরে আসা যাক এবং দেখব পরিস্থিতির সার্বিক সিনট্যাক্স এ. 445 00:23:32,240 --> 00:23:37,400 আমি int * P যদি বলি ;, আমি কি করেছি? 446 00:23:37,400 --> 00:23:38,530 আমি কি সম্পন্ন করেছি এই হল. 447 00:23:38,530 --> 00:23:43,290 আমি পি মান একটি ঠিকানা জানি সব পয়েন্টার ঠিক আছে, কারণ 448 00:23:43,290 --> 00:23:44,660 ঠিকানাগুলি. 449 00:23:44,660 --> 00:23:47,750 আমি করতে ডি-রেফারেন্স P * অপারেটর ব্যবহার. 450 00:23:47,750 --> 00:23:51,250 খুব এখানে এই প্রেক্ষাপটে শীর্ষ * টাইপ অংশ প্রত্যাহার. 451 00:23:51,250 --> 00:23:53,510 * আন্তর্জাতিক ডাটা টাইপ. 452 00:23:53,510 --> 00:23:56,150 কিন্তু আমি ডি-রেফারেন্স করতে পারেন * অপারেটর ব্যবহার P, 453 00:23:56,150 --> 00:24:01,897 এবং আমি তাই করতাম তবে আমি যে ঠিকানায় যান তাহলে, আমি যে ঠিকানায় কি পাবেন? 454 00:24:01,897 --> 00:24:02,855 আমি একটি পূর্ণসংখ্যা পাবেন. 455 00:24:02,855 --> 00:24:05,910 সুতরাং int- * পি মূলত বলার অপেক্ষা রাখে না, পি একটি ঠিকানা থাকে. 456 00:24:05,910 --> 00:24:09,500 আমি করতে P ডি-রেফারেন্স এবং যদি আমি না, আমি একটি পূর্ণসংখ্যা পাবেন 457 00:24:09,500 --> 00:24:11,920 যে মেমরি অবস্থানে. 458 00:24:11,920 --> 00:24:14,260 >> ঠিক আছে, তাই আমি অন্য ছিল বলেন বড় সঙ্গে বিরক্তিকর জিনিস 459 00:24:14,260 --> 00:24:17,060 এবং এখানে যে যেখানে বড় সঙ্গে বিরক্তিকর জিনিস. 460 00:24:17,060 --> 00:24:21,640 আপনি কি ঘোষণা করতে চেষ্টা করছেন একই ধরনের একাধিক ভেরিয়েবল 461 00:24:21,640 --> 00:24:24,409 কোড একই লাইনে? 462 00:24:24,409 --> 00:24:27,700 সুতরাং একটি দ্বিতীয় জন্য, যে লাইন জাহির আমি আসলে সবুজ সেখানে আছে কোড 463 00:24:27,700 --> 00:24:29,366 নেই এবং এটা শুধু int-X, Y, Z বলেছেন ;. 464 00:24:29,366 --> 00:24:31,634 465 00:24:31,634 --> 00:24:34,550 কি যে করতে হবে আসলে তৈরি হয় আপনার জন্য তিনটি পূর্ণসংখ্যা ভেরিয়েবল, 466 00:24:34,550 --> 00:24:36,930 এক বলা X, নামক এক Y, এবং এক জেড '. 467 00:24:36,930 --> 00:24:41,510 এটা ছাড়া এটা করতে একটি উপায় তিনটি লাইন সম্মুখের বিভক্ত করতে হচ্ছে. 468 00:24:41,510 --> 00:24:43,890 >> বড় পেতে এখানে যেখানে যদিও আবার বিরক্তিকর, 469 00:24:43,890 --> 00:24:49,200 * আসলে অংশ, কারণ উভয় প্রকার নাম এবং অংশ 470 00:24:49,200 --> 00:24:50,320 ভেরিয়েবল নামের. 471 00:24:50,320 --> 00:24:56,430 আর তাই আমি যদি বলি কোন int * px এর, PY, PZ, তা আমি আসলে পেতে একটি পূর্ণসংখ্যা একটি পয়েন্টার 472 00:24:56,430 --> 00:25:01,650 px এবং দুটি পূর্ণসংখ্যার, PY এবং PZ বলা. 473 00:25:01,650 --> 00:25:04,950 এবং যে সম্ভবত না কি আমরা যে ভাল না, চান. 474 00:25:04,950 --> 00:25:09,290 >> আমি একাধিক পয়েন্টার তৈরি করতে চান তাহলে একই লাইনে, একই ধরনের, 475 00:25:09,290 --> 00:25:12,140 আমি আসলে কি প্রয়োজন এবং বড়, করতে * PB, * পিসি, কোন int * পিএ বলতে হয়. 476 00:25:12,140 --> 00:25:17,330 477 00:25:17,330 --> 00:25:20,300 এখন শুধু যে বলেন না এবং এখন, আপনি এই কহন 478 00:25:20,300 --> 00:25:22,170 আপনি সম্ভবত এই কাজ করবে না. 479 00:25:22,170 --> 00:25:25,170 এবং এটা সত্যি বলতে সম্ভবত একটি ভাল জিনিস আপনি অনবধানতাবশত হতে পারে, কারণ 480 00:25:25,170 --> 00:25:26,544 একটি তারকা, যে ভালো কিছু বর্জন করা. 481 00:25:26,544 --> 00:25:29,290 এটা হতে পারে ঘোষণা সম্ভবত সেরা পৃথক লাইন পয়েন্টার, 482 00:25:29,290 --> 00:25:31,373 কিন্তু এটা শুধু আরেকটি এক যারা বিরক্তিকর সিনট্যাক্স 483 00:25:31,373 --> 00:25:35,310 যে বড় সঙ্গে কিছু এর সাথে কাজ করা এত কঠিন পয়েন্টার. 484 00:25:35,310 --> 00:25:39,480 এটা শুধু এই অন্বিত কারণ জগাখিচুড়ি আপনি মাধ্যমে কাজ করার আছে. 485 00:25:39,480 --> 00:25:41,600 অনুশীলনের সাথে আছে সত্যিই দ্বিতীয় প্রকৃতি হয়ে. 486 00:25:41,600 --> 00:25:45,410 আমি এখনও এটা দিয়ে ভুল করা 10 বছর জন্য প্রোগ্রামিং পর, 487 00:25:45,410 --> 00:25:49,630 কিছু ঘটে তাহলে তাই মন খারাপ করবেন না আপনি, এটা সত্যই প্রশংসনীয় সাধারণ. 488 00:25:49,630 --> 00:25:52,850 এটা কোন ধরনের সত্যিই সিনট্যাক্স একটি ত্রুটি. 489 00:25:52,850 --> 00:25:54,900 >> ঠিক আছে, তাই আমি ধরনের প্রতিশ্রুতি আমরা পরিদর্শন করবে 490 00:25:54,900 --> 00:25:59,370 কত বড় ধারণা একটি পংক্তি. 491 00:25:59,370 --> 00:26:02,750 আচ্ছা আমি একজন যে তোমাকে বলেছিলাম তাহলে স্ট্রিং, আমরা ধরনের সত্যিই করেছি 492 00:26:02,750 --> 00:26:04,140 আপনি পুরো সময় মিথ্যা বলে. 493 00:26:04,140 --> 00:26:06,181 বলা কোন ডাটা টাইপ আছে স্ট্রিং, এবং আসলে আমি 494 00:26:06,181 --> 00:26:09,730 এক এই উল্লেখ আমাদের তথ্য ধরনের উপর নিকটতম ভিডিও, 495 00:26:09,730 --> 00:26:13,820 স্ট্রিং একটি ডাটা টাইপ ছিল cs50.h. আপনার জন্য তৈরি করা হয়েছে 496 00:26:13,820 --> 00:26:17,050 আপনি # অন্তর্ভুক্ত করতে হবে এটি ব্যবহার করার জন্য যে cs50.h. 497 00:26:17,050 --> 00:26:19,250 >> ওয়েল স্ট্রিং শুধু সত্যিই হয় কিছু একটি alias 498 00:26:19,250 --> 00:26:23,600 , গৃহস্থালি * নামক একটি একটি অক্ষর পয়েন্টার. 499 00:26:23,600 --> 00:26:26,010 ওয়েল পয়েন্টার, রিকল, শুধু ঠিকানাগুলো. 500 00:26:26,010 --> 00:26:28,780 তাই সাইজ কি একটি স্ট্রিং এর বাইট? 501 00:26:28,780 --> 00:26:29,796 আচ্ছা এটা চার বা আট এর. 502 00:26:29,796 --> 00:26:32,170 এবং কারণ আমি বলতে চার বা আট এটা কারণ আসলে 503 00:26:32,170 --> 00:26:36,730 আপনি ব্যবহার করছেন, সিস্টেমের উপর নির্ভর করে এবং CS50 IDE, গৃহস্থালি * একটি গৃহস্থালি মাপ 504 00:26:36,730 --> 00:26:39,340 * এটি একটি 64 বিট সিস্টেম, আটটা. 505 00:26:39,340 --> 00:26:43,850 স্মৃতিতে প্রতিটি অঙ্ক 64 বিট দীর্ঘ. 506 00:26:43,850 --> 00:26:48,270 আপনি CS50 ব্যবহার করছেন বা কোনো 32-বিট মেশিনের ব্যবহার, 507 00:26:48,270 --> 00:26:51,640 এবং আপনি যে শব্দটি 32-বিট শোনা করেছি মেশিন, একটি 32 বিট মেশিনের কি? 508 00:26:51,640 --> 00:26:56,090 আচ্ছা এটা শুধু ভাষার যে মানে স্মৃতিতে অঙ্ক 32 বিট দীর্ঘ. 509 00:26:56,090 --> 00:26:59,140 আর তাই 32 বিট চার বাইট. 510 00:26:59,140 --> 00:27:02,710 সুতরাং একটি গৃহস্থালি * চার বা আট আপনার সিস্টেমের উপর নির্ভর বাইট. 511 00:27:02,710 --> 00:27:06,100 এবং প্রকৃতপক্ষে কোনো ধরনের তথ্য, এবং কোন তথ্য একটি পয়েন্টার 512 00:27:06,100 --> 00:27:12,030 সব পয়েন্টার ঠিক, যেহেতু টাইপ ঠিকানা, চার বা আট বাইট হয়. 513 00:27:12,030 --> 00:27:14,030 তাই আসুন এই পরিদর্শন দিন ডায়াগ্রাম এবং এর উপসংহারে আসতে দিন 514 00:27:14,030 --> 00:27:18,130 এখানে একটু ব্যায়াম সাথে এই ভিডিও. 515 00:27:18,130 --> 00:27:21,600 তাই আমরা এখানে দিয়ে বাম বন্ধ ডায়াগ্রাম এর ভিডিও খুব প্রারম্ভে. 516 00:27:21,600 --> 00:27:23,110 আমি * PK = 35 বলে তাহলে তো এখন কী? 517 00:27:23,110 --> 00:27:26,370 518 00:27:26,370 --> 00:27:30,530 সুতরাং এটা * PK = 35, যখন আমি বলতে কি বোঝায়? 519 00:27:30,530 --> 00:27:32,420 কয়েক সেকেন্ড সময় নিন. 520 00:27:32,420 --> 00:27:34,990 * PK. 521 00:27:34,990 --> 00:27:39,890 এখানে প্রসঙ্গে * হয় dereference অপারেটর. 522 00:27:39,890 --> 00:27:42,110 সুতরাং যখন ডি-রেফারেন্স অপারেটর ব্যবহার করা হয়, 523 00:27:42,110 --> 00:27:48,520 অঙ্ক জোরাল করতে যেতে PK করে, এবং আমরা এটি কি পরিবর্তন. 524 00:27:48,520 --> 00:27:55,270 সুতরাং * PK = 35 কার্যকরভাবে ছবি এই আছে. 525 00:27:55,270 --> 00:27:58,110 সুতরাং এটা সিনট্যাক্স মূলত এর অভিন্ন K = 35 বলে. 526 00:27:58,110 --> 00:28:00,740 527 00:28:00,740 --> 00:28:01,930 >> আরেকটি. 528 00:28:01,930 --> 00:28:05,510 আমি int এম আর যদি বলি, আমি তৈরি এম নামে একটি নতুন পরিবর্তনশীল. 529 00:28:05,510 --> 00:28:08,260 একটি নতুন বক্স, এটি একটি সবুজ বক্স কারণ এর এটি একটি পূর্ণসংখ্যা রাখা যাচ্ছে, 530 00:28:08,260 --> 00:28:09,840 এবং এটি এম লেবেল এর. 531 00:28:09,840 --> 00:28:14,960 আমি M = 4 যদি বলি, আমি একটি করা যে বাক্সে পূর্ণসংখ্যা. 532 00:28:14,960 --> 00:28:20,290 বলে PK = & M, কিভাবে যদি এই চিত্রটি পরিবর্তন? 533 00:28:20,290 --> 00:28:28,760 PK = & M, আপনি কি প্রত্যাহার না & অপারেটর আছে বা বলা হয়? 534 00:28:28,760 --> 00:28:34,430 যে ও কিছু পরিবর্তনশীল নাম মনে রাখুন একটি ভেরিয়েবল নামের ঠিকানা. 535 00:28:34,430 --> 00:28:38,740 তাই কি আমরা বলছে PK মিটার অঙ্ক পায়. 536 00:28:38,740 --> 00:28:42,010 এবং যাতে কার্যকরভাবে কি ঘটবে চিত্রটি যে আর পয়েন্ট PK হয় 537 00:28:42,010 --> 00:28:46,420 এম, কিন্তু পয়েন্ট ট. 538 00:28:46,420 --> 00:28:48,470 >> আবার পয়েন্টার খুব হয় এর সাথে কাজ করা চতুর 539 00:28:48,470 --> 00:28:50,620 এবং তারা অনেক সময় লাগবে অভ্যাস, কিন্তু কারণ 540 00:28:50,620 --> 00:28:54,150 আপনি অনুমতি দেওয়া হয় তাদের ক্ষমতা ফাংশন মধ্যে পাস তথ্য 541 00:28:54,150 --> 00:28:56,945 এবং আসলে ঐ আছে পরিবর্তনগুলি প্রয়োগ করা, 542 00:28:56,945 --> 00:28:58,820 আপনার মাথার চারপাশে পেয়ে সত্যিই গুরুত্বপূর্ণ. 543 00:28:58,820 --> 00:29:02,590 এটা সম্ভবত সবচেয়ে জটিল আমরা CS50 মধ্যে আলোচনা বিষয়ে, 544 00:29:02,590 --> 00:29:05,910 কিন্তু মূল্য যে আপনি পয়েন্টার ব্যবহার থেকে পেতে 545 00:29:05,910 --> 00:29:09,200 পর্যন্ত জটিলতা তুলনায় যে তাদের শেখার থেকে আসা. 546 00:29:09,200 --> 00:29:12,690 তাই আমি আপনাকে ভাল কামনা ভাগ্য পয়েন্টার সম্পর্কে শেখার. 547 00:29:12,690 --> 00:29:15,760 আমি ডগ লয়েড আছি, এই CS50. 548 00:29:15,760 --> 00:29:17,447