Dream Walker
یک شنبه 02 آبان 1395, 16:55 عصر
دوستان ، استادان سلام.
در بحث اشارگر ها به یه مشکلی خوردم.
من میدونم که اسم آرایه اشارگری ثابت به اولین عنصر آرایه است.
مثلا اگر داشته باشیم:
int arr[5] = { 10,20,30,40,50 };
شروط زیر برقرار اند:
arr == &arr[0]
*arr == arr[0]
آدرس اشاره گر arr هم با آدرس اولین عنصر آرایه arr یکی هست.
ولی چرا مقدار arr با مقدار arr[0] برابر نیست؟ چطور تو یه خانه حافظه هم اشاره گر وجود داره و هم مقدار int؟؟؟؟
اسم آرایه که یک اشاره گر هست و آدرس اولین عنصر آرایه رو یدک میکشه با اولین عنصر آرایه که میتونه هر type داشته باشه از int گرفته تا double و .... چطور آدرس حافظشون یکی هست؟
تشکر
در بحث اشارگر ها به یه مشکلی خوردم.
من میدونم که اسم آرایه اشارگری ثابت به اولین عنصر آرایه است.
مثلا اگر داشته باشیم:
int arr[5] = { 10,20,30,40,50 };
شروط زیر برقرار اند:
arr == &arr[0]
*arr == arr[0]
آدرس اشاره گر arr هم با آدرس اولین عنصر آرایه arr یکی هست.
ولی چرا مقدار arr با مقدار arr[0] برابر نیست؟ چطور تو یه خانه حافظه هم اشاره گر وجود داره و هم مقدار int؟؟؟؟
اسم آرایه که یک اشاره گر هست و آدرس اولین عنصر آرایه رو یدک میکشه با اولین عنصر آرایه که میتونه هر type داشته باشه از int گرفته تا double و .... چطور آدرس حافظشون یکی هست؟
تشکر