Suppose such a snippet of minimal code:
#include <stdio.h>
int main(void)
{
    int a = 2;
    int b = a;
    printf("a = %d, &a = %d", a, &a);
    printf("b = %d, &b = %d", b, &b);
    return 0;
}
I ran it and get error report as:
test.c:6:31: warning: format specifies type 'int' but the argument has type 'int *' [-Wformat]
        printf("a = %d, &a = %d", a, &a);
                             ~~      ^~
test.c:7:31: warning: format specifies type 'int' but the argument has type 'int *' [-Wformat]
        printf("b = %d, &b = %d", b, &b);
                             ~~      ^~
2 warnings generated.
I assume a = 2 b = 2 is equivalent to a = b = 2, nonetheless the complier remind info hardly to understand.
 
    