Hello friends Please help me with following problem in C void main() { static int sub[5]={10,20,30,40,50}; int i=5; clrscr(); sub=i*i; printf("%d\n",sub); getch(); } Here the storage class of array sub[] is declared to be static and printf prints character corresponding to ASCII value 25 If we declare storage class of sub[] to be auto then printf() prints 25 Why this difference comes
You have undefined behaviour because sub[5] doesn't exist. Limit i to the range 0..4 and you should get consistent behaviour.