Hi All,
Following code :
Code:
int main()
{
int ar[][5]= {{1,2,3,4,5},{6,7,8,9,10}};
printf("Val : %d\n",ar[1][2]);
printf("Val : %d\n",*(ar[1]+2));
printf("*(ar) : %x\n",*(ar));
printf("*(*(ar)) : %x\n",*(*(ar)));
printf("ar : %x\n",ar);
printf("&ar : %x\n",&ar);
printf("ar[0] : %x\n",ar[0]);
printf("&ar[0][0] : %x\n",&ar[0][0]);
printf("ar[0][0] : %x\n",ar[0][0]);
printf("(ar[0]+1) : %x\n",(ar[0]+1));
printf("(ar[1]) : %x\n",(ar[1]));
return 0;
}
Code:
Output:
Val : 8
Val : 8
*(ar) : 6a335340
*(*(ar)) : 1
ar : 6a335340
&ar : 6a335340
ar[0] : 6a335340
&ar[0][0] : 6a335340
ar[0][0] : 1
(ar[0]+1) : 6a335344
(ar[1]) : 6a335354
Question:
1. Why are the following highlighted values the same (for *ar,ar,&ar)? What is the logic behind such assignment wrt the execution perspective?
Thanks in advance