Может ли кто-нибудь объяснить мне, почему этот код печатает 1 3 0 0 0 -1, а не 1 2 3 0 0 0? Как этот вызов определить работу?Что этот код печатает и почему?
#include<stdio.h>
#define SOMETHINGDEFINED(i) A[i%4]
int main(void) {
int i, A[6] = { 1 };
SOMETHINGDEFINED(1) = 2;
SOMETHINGDEFINED(5) = 3;
SOMETHINGDEFINED(4 + 2) = SOMETHINGDEFINED(1 + 3 + 1)--;
for (i = 0; i < 6; i++) {
printf("%d ", A[i]);
}
return 0;
}
Что такое 4 + 2% 4 и 1 + 3 + 1% 4? – immibis