About array names and addresses of arrays in C -


i had following code :

#include<stdio.h>  void main() {     int * a;     int arr[2];     arr[1] = 213 ;     arr[0] = 333 ;     = &arr ;     printf("\narr %d",arr);     printf("\n*arr %d",*arr);     printf("\n&arr %d",&arr);      printf("\n%d",a[1]); } 

on running simple program output follows :

arr -1079451516 *arr 333 &arr -1079451516 213 

why both arr , &arr give same result ? can understand arr memory location , *arr or arr[0] value stored @ position, why &arr , arr same ?

almost time use expression array type, "decays" pointer first element. arr becomes pointer type int*, , pointer what's passed printf. &arr pointer type int (*)[2] (pointer array of 2 ints). 2 pointers have same address, since both point @ beginning of array.

(one notable exception array-to-pointer conversion in sizeof argument.)


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -