Predict the output of following C programs.
The output of above programs and all such programs can be easily guessed by remembering following simple rules about postfix ++, prefix ++ and * (dereference) operators
1) Precedence of prefix ++ and * is same. Associativity of both is right to left.
2) Precedence of postfix ++ is higher than both * and prefix ++. Associativity of postfix ++ is left to right.
(Refer: Precedence Table)
The expression ++*p has two operators of same precedence, so compiler looks for assoiativity. Associativity of operators is right to left. Therefore the expression is treated as ++(*p). Therefore the output of first program is “arr = 11, arr = 20, *p = 11“.
The expression *p++ is treated as *(p++) as the precedence of postfix ++ is higher than *. Therefore the output of second program is “arr = 10, arr = 20, *p = 20“.
The expression *++p has two operators of same precedence, so compiler looks for assoiativity. Associativity of operators is right to left. Therefore the expression is treated as *(++p). Therefore the output of third program is “arr = 10, arr = 20, *p = 20“.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Difference between PCA VS t-SNE
- Difference between USB 2.0 and USB 3.0
- Difference between Tor and VPN
- Difference between CD-R and CD-RW
- Difference between IBM DB2 and MS SQL
- Difference between ZIP and RAR
- Difference between H.323 and SIP
- What is the difference between GUI and CUI?
- Difference between DFA and NFA
- Difference between SDN and NFV
- Difference between IoT and M2M
- Difference Between SMO and SEO
- Difference Between GIT and SVN
- Difference Between DAS and SAN
- Difference between PNG and GIF
- Difference between ANN, CNN and RNN
- Difference between T-SQL and PL-SQL
- Difference between LAN and WAN
- Difference between DFD and ERD
- Difference between LED and LCD
Improved By : srinam