Which one of the following is the smart, efficient and safe way to declare a string array ? And if you have any other way do suggest.
char a[10]={'A','B','C'};
char a[10]="ABC";
char a[]="ABC";
char *a="ABC";
Please take into consideration the memory allocation and size, memory wasted, methods of retriving data etc.