Ich habe dieses Stück C-CodeFalscher Wert von printf gedruckt wird
#include <stdio.h>
int main(){
int i , j , m , A[5]={0,1,15,25,20};
i = ++A[1];
printf("%d:\n",i);
j = A[1]++;
printf("%d:\n",j);
m = A[i++];
printf("%d:\n",m);
printf("%d %d %d",i,j,m);
return 0;
}
und es ist Ausgang
2:
2:
15:
3 2 15
soll nicht der printf Druck ist der Wert als 2, 2, 15, aber warum ist es Drucken 3, 2, 15
PS: Ich habe diesen Code wirklich nicht missbraucht, jemand anderes tat (mein Professor vielleicht) und ich lerne gerade C.
Nicht von '++' missbrauchen. Vielleicht Klammern (um die Lesbarkeit zu erhöhen), also '(A [1]) ++' anstelle von 'A [1] ++'. Initialisiere jede Variable. Kompilieren Sie alle Warnungen und Debug-Informationen (z. B. 'gcc -Wall -g 'bei Verwendung von [GCC] (http://gcc.gnu.org/) ...). Lesen Sie http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html –