PDA

View Full Version : استفاده از اشاره گر



amir_civil
شنبه 19 آبان 1386, 12:34 عصر
با سلام
دوستان لطفا توضیح بدن چرا کد زیر اروور میده:متفکر:

char file[]={"sdasd","asdasdf","asdfasf","sdfsdf"};
و کد زیر اررور نمیده

char* file[]={"sdasd","asdasdf","asdfasf","sdfsdf"};
ارور هم مربوط به مقدار اولیه دادن به متغیر هستش

herfei
شنبه 19 آبان 1386, 13:38 عصر
اینا چرا یه ورشون پرانتزه یه ورشون آکولاد؟؟؟

sh_roohani
شنبه 19 آبان 1386, 14:45 عصر
سلام،

دلیلش اینه که اولی تعریف یک رشته کاراکتری به صورت یک آرایه از کاراکترهاس، ولی شما دارین سعی می کنین اونو به صورت یه آرایه از رشته ها (به جای یه آرایه از کاراکترها) مقداردهی اولیه کنین. ولی دومی دقیقا تعریف آرایه ای از اشاره گر به کاراکتر هست. یعنی آرایه ای از رشته ها. و مقداردهی اولیه برای اون درسته.

Alireza Orumand
شنبه 19 آبان 1386, 14:58 عصر
سلام
مورد اولی که تعریف کردید یک آرایه ی یک بعدی از نوع char هست که میتونید یک رشته داخل اون بریزید ولی شما چند تا رشته داخل اون قرار دادید یعنی تو مثال اول فقط میتونید بنویسید


char file[]= "abcd";

ولی در بخش بعد شما یه اشاره گر از آرایه تعریف کردید که میشه آرایه ی دوبعدی یعنی از نوع char که میتونه چند تا رشته رو نگه داری کنه.

amir_civil
شنبه 19 آبان 1386, 16:23 عصر
ولی دومی دقیقا تعریف آرایه ای از اشاره گر به کاراکتر هست. یعنی آرایه ای از رشته ها
میشه بیشتر توضیح بدید

emad_67
شنبه 19 آبان 1386, 16:36 عصر
ببین دوست عزیز وقتی شما می نویسی:


char *file[10];
یعنی اینکه آرایه ای تعریف میکنی که 10 تا خونه داره و این 10 تا خونه هر کدوم اشاره گری به نوع char هستند یعنی آدرس اول یه رشته ای رو در خودشون دارن مثل این می مونه که 10 تا متغیر به صورت char * تعریف کرده باشی. در واقع توی هر خونه این نوع آرایه میشه 10 تا رشته قرار داد.( در اصل آدرس 10 تا رشته قرار میگیره)ولی توی آرایه هایی که به صورت char تعریف میکنی فقط میشه یک رشته قرار داد و هر خونه از آرایه قابلیت گرفتن یک کاراکتر رو داره.