the order in which printf functions are evaluated: stack from right to left, then from left to right .
Routines:
#include "stdio.h" int main () {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr;printf ("%d%d\n", *ptr, * (++PTR)); return 0;}
Output: 2, 2
Calculation Order: * (++PTR) is calculated first. The stack is pressed and then the * (PTR) is calculated. Re-press the stack.
Note: The calculation Order of ++ptr and ptr++. can result in different results.
#include "stdio.h" int main () {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr;printf ("%d%d\n", *ptr, * (ptr++)); return 0;}
Output: 2, 1
Calculation Order: First stack * (PTR). Then run the + + operation, later. Stack * (PTR). The output time. Stack from left to right, so the result is 2,1
The cout calculation order is the same.
See Routines:
#include "iostream" using namespace Std;int main () {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr;cout << * (PTR) << ; "<< * (ptr++) <<" "<<* (ptr++) <<endl;return 0;}
Output:
The 4--printf function and the order of calculation of cout in C + + knowledge