Q:
int main() { char arr[] = "geeksforgeeks" ; char *ptr = arr; while (*ptr != '\0' ) ++*ptr++; printf ( "%s %s" , arr, ptr); getchar (); return 0; } |
Output: hffltgpshfflt
Explanation:
The crust of this question lies in expression ++*ptr++.
The crust of this question lies in expression ++*ptr++.
If one knows the precedence and associativity of the operators then there is nothing much left. Below is the precedence of operators.
Postfixx ++ left-to-right Prefix ++ right-to-left Dereference * right-to-left
Therefore the expression ++*ptr++ has following effect
Value of *ptr is incremented
Value of ptr is incremented
Value of *ptr is incremented
Value of ptr is incremented
No comments:
Post a Comment