O/P
1. puts(a);//passes base adress of array a to puts fn which try to print untill it find '\0' which never occur
So here o/p of this statement is :- abc then appended with some garbage character.
2. sizeof(&a[0]);
Explanation:- &a[0] gives base adress of String constant "abc" and it considers the '\0' char @ end of the string constant by default ..So here o/p is 4
Note:- if Here we only Changes a[50]="abc" also the o/p of above sizeof statement is 4 only bcz it deal with the string constant size.
But if we are writing sizeof(a) then it return 50 for a[50] and 3 for given question.