가능한 중복은 :
Order of evaluation in C++ function parameters
Parameter evaluation order before a function calling in C이 문제를 설명해주십시오.
:~/work_space/cprogs$ !cat
cat expression_associativity.c
#include<stdio.h>
int main()
{
int i = 0;
printf("\n no-incr:%d pre-incr:%d post-incr:%d no-incr:%d post-incr:%d no-incr:%d \n", i, ++i, i++, i, i++, i);
return 0;
}
:~/work_space/cprogs$ !./
./expression_associativity
no-incr:3 pre-incr:3 post-incr:1 ***no-incr:3*** post-incr:0 ***no-incr:3***
:~/work_space/cprogs$
왜 마지막 중간 "노 증분"값은 3으로 인쇄? 마지막으로 "no-incr"이 0으로, 중간에 "no-incr"이 1이 될 것으로 예상했습니다.
누군가가 표현의 순서가 정확히 무엇인지 설명하고 왜이 값을보고 있습니까?
실제로 "지정되지 않음"이며 "정의되지 않음"과 현저히 다릅니다. – cnicutar
@cnicutar : 내 대답은 이미 그것이 지정되지 않았 음을 나타내며 &이 경우 지정되지 않은 동작은 정의되지 않은 동작을 초래합니다. –
이전 버전을 본 적이 있어야합니다 – cnicutar