How to explain the output of the below code:
include <stdio.h>
int main(void) {
    int k;
    printf("%d %d\n",k=1,k=3);
    return 0;
}
My thinking was that 1 will be assigned to k variable and then 1 would be printed. Similarly 3 will be assigned to k and output will be 3.
Expected Output
1 3
Actual Output
1 1
I am extrapolating from
int a;
if (a = 3) { 
    ...
} 
is equal to
if (3) { 
    ... 
}
Please let me know where am I going wrong?
 
     
    