On Sat, Jul 24, 2010 at 9:40 AM, tarak mehta <tarakmeht...@gmail.com> wrote:
> int arr[]={1,2,3,4}; > k=sizeof(arr)/sizeof(*arr); > value of k=4; > > however > > > void hell(int arr[]); > main() > { > int arr[]={1,2,3,4}; > hell(arr); > } > void hell(int arr[]) > { > printf("%d",sizeof(arr)/sizeof(*arr)); > } > > > output of hell() is 1. why??? > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algoge...@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > When array is passed as an argument, only a pointer to the first element of the array is passed. Therefore the parameter int arr[] in void hell(int arr[]) is just a pointer, hence the result . I hope it answers your query. -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algoge...@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.