আমরা C তে

 int *ptr = 4;

এই কাজটি করতে পারি না । কিন্তু

char *ptr = "some char";

এই কাজটি করতে পরি । আমর প্রশ্ন হল এটা কি ভাবে সম্ভম হয় ?

asked 27 Aug '15, 04:09

menon's gravatar image

menon
4.7k335

edited 27 Aug '15, 04:11


int এর মত char এও আমরা কাজটা করতে পারনি না। যেমনঃ

char *ptr = 'c';

এক্ষেত্রে, initialization এর সময় * pointer নির্দেশ করে, আর 4 হচ্ছে একটি value. তাই assign করা যাচ্ছে না। initialization ছাড়া বাকি সব ক্ষেত্রে এসব pointer variable গুলো * ছাড়া pointer নির্দেশ করে, * দিলে value নির্দেশ করে। যেমনঃ

int m = 9;
int k = 4,*ptr=&m;
ptr = &k;
*ptr = 5;

"some char" এটা একটা string, আর string কোথাও assign করতে গেলে pointer নির্দেশ করে। এজন্যই আমরা array delare করার সময় লিখিঃ

char arr[] ="some char";

এখানে arr টা কিন্তু কোন একটা variable কে নির্দেশ করে না, বরং এটা একটা array এর address(pointer). ঠিক তেমনি নিচের ক্ষেত্রে ptr একটি pointer নির্দেশ করে, যেহেতু এটি একটি pointer.

char *ptr = "some char";

আগেই বলেছি "initialization ছাড়া বাকি সব ক্ষেত্রে এসব pointer variable গুলো pointer নির্দেশ করে।" তাই পরে initialize করতেঃ

char *ptr;
ptr = "some char";

এক কথায়ঃ

assignment (=) এর ক্ষেত্রে নিচের নিয়ম মানতে হবেঃ

pointer_variable = pointer;
normal_variable = value;

কিন্তু উপরের প্রথম ক্ষেত্রেঃ

pointer_variable = value;

এবং দ্বিতীয় ক্ষেত্রেঃ

pointer_variable = pointer;

হচ্ছে।

আশা করি বুঝতে পেরেছেন, না হয় কোন প্রশ্ন থাকলে করতে পারেন। ধন্যবাদ।

permanent link

answered 27 Aug '15, 09:51

manetsus's gravatar image

manetsus
2.2k211

edited 27 Aug '15, 09:54

ধন্যবাদ ইনাম ভাই । বিষয় টা ক্লিয়ার করার জন্য

(27 Aug '15, 13:51) menon
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×402

question asked: 27 Aug '15, 04:09

question was seen: 795 times

last updated: 27 Aug '15, 13:51