**ppv = 99
#include <stdio.h> void main ( void ) { int value, num = 99 ; int *pv= &value, *pn = &num ; int **ppv= &pv ; **ppv = *pn; /* ugly statement */ printf("**ppv = %d\n", **ppv ); }
The statement
**ppv = *pn;
calls for an L-value (a location) on the left of the assignment operator and calls for an R-value (an integer in this case) on the right of the assignment operator.
It helps to remember that assignment statements happen in two big steps:
pn
to the location that holds 99**ppv
to the variable value