У меня есть этот кусок кода CНеверное значение печатается на Printf
#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;
}
и это выход
2:
2:
15:
3 2 15
В случае, если не Printf печать значения, как 2, 2, 15, но почему это печать 3, 2, 15
PS: Я действительно не злоупотреблял этим кодом, кто-то другой (возможно, мой профессор), и я просто изучаю C.
Не злоупотребляйте '++'. Возможно, используйте скобки (для повышения удобочитаемости), поэтому '(A [1]) ++' вместо 'A [1] ++'. Инициализируйте каждую переменную. Скомпилируйте все предупреждения и информацию об отладке (например, 'gcc -Wall -g', если вы используете [GCC] (http://gcc.gnu.org/) ...). Прочитайте http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html –