Explain the output of these short C programs
main() { static int var = 4; printf("%d",var--); if(var) main(); }The output is given as 4321
2.
main() { static char n [5][20]={"Amar","Akbar","Anthony","Vijay","Amit"}; int i; char*t; t=n[3]; n[3]=n[4]; n[4]=t; for(i=0;i<=4;i++) printf("%s",n[i]); }This will generate a compiler error due to a property that array names can not be modified or something like that. Please explain it in detail.
3.
void main() { int i=5; printf("%d",i+++++i); }They say this will be parsed like i++ ++ +i which is illegal therefore there will be compiler error. Why is it not parsed like the following: i++ + ++i?
4.
main() { int i=0; for(;i++;printf("%d",i)); printf("%d",i); }The output of this program is given as 1. But I think it should be 11. What do you think? Explain the program flow.
5.
main() { int a[2][3][2]={{{1,2},{9,8},{3,7}},{{2,2},{1,4},{5,4}}}; printf("%d %d %d",a[1]-a[0],a[1][0]-a[0][0],a[1][0][0]-a[0][0][0]); }The output is given as 3 6 1. How? How to process a[1]-a[0] and a[1][0]-a[0][0]?
Just explain the concepts which you know exactly. Need not have to answer all the programs if you don't know. Just give number for which you are answering.😀