PDA

View Full Version : سوال: یک آرایه می تواند ایندکس -1 هم داشته باشد؟



complexcoding
چهارشنبه 14 تیر 1391, 14:16 عصر
دوستان سلام
خروجی این کد 0 و 31 و 30 و 40 و 10 می شود؟ چرا؟

int p(int a[3])
{
a[0]=30;
*(a+1)=*a+1;
a[-1]=*a+10;
}
main(){
int x[5]={10,70,90};
int i;
p(x+2);
for(i=0;i<5;)
cout<<x;}

اول اینکه ایندکس آرایه از 0 و 1 شروع می شود الا آخر در این کد ایندکس [1-] هم داده؟
دوم اینکه در داخل متد main فراخوانی انجام شده با (p(x+2 یعنی جایگزینی مقادیر 30 و 31 و 40 خوب پس باید خروجی بشه 31 و 30 و 40 و 70 و 10 دیگه ؟
سوال مهم: نکنه منظورش از (p(x+2 خانه دوم آرایه x هست نه سوم ؟ اگر اینگونه است یه راهنمایی بکنید که ما از کجا این موارد رو قاطی نکنیم؟ یعنی منظورش از (p(x+1 خانه اول آرایه است یا خانه دوم ؟؟

pe32_64
چهارشنبه 14 تیر 1391, 14:50 عصر
اول اینکه ایندکس آرایه از 0 و 1 شروع می شود الا آخر در این کد ایندکس [1-] هم داده؟
دوم اینکه در داخل متد main فراخوانی انجام شده با (p(x+2 یعنی جایگزینی مقادیر 30 و 31 و 40 خوب پس باید خروجی بشه 31 و 30 و 40 و 70 و 10 دیگه ؟
0،عنصر اوله.منفی هم میشه داد.
ولی معمولا همه ارایه رو از اولش مورد استفاده قرار میدن،اما اینجا از اول آرایه استفاده نکرده.


سوال مهم: نکنه منظورش از (p(x+2 خانه دوم آرایه x هست نه سوم ؟ اگر اینگونه است یه راهنمایی بکنید که ما از کجا این موارد رو قاطی نکنیم؟ یعنی منظورش از (p(x+1 خانه اول آرایه است یا خانه دوم ؟؟

arrayname+n = arrayname[n] = n+1th part of the array

مثلا ( p(x+2 یعنی خانه ی 3 از آرایه (با اندیس 2) که به تابع فرستاده میشه.

complexcoding
چهارشنبه 14 تیر 1391, 15:19 عصر
0،عنصر اوله.منفی هم میشه داد.
ولی معمولا همه ارایه رو از اولش مورد استفاده قرار میدن،اما اینجا از اول آرایه استفاده نکرده.

arrayname+n = arrayname[n] = n+1th part of the array

مثلا ( p(x+2 یعنی خانه ی 3 از آرایه (با اندیس 2) که به تابع فرستاده میشه.
خوب اگر منظور خانه سوم هست آیا همین خانه سوم اولین خانه از متد P که آرایه a پارامتر آن است می شود؟

pe32_64
چهارشنبه 14 تیر 1391, 16:30 عصر
خوب اگر منظور خانه سوم هست آیا همین خانه سوم اولین خانه از متد P که آرایه a پارامتر آن است می شود؟

بله ،من که گفتم!