a ++와 ++ a (무의식적 행동)를 이해하면 혼란스러워지기 쉽지만, 그것들을 사용할 때 복잡하고 어려운 표현을 피하는 한 기본적으로 실수를 할 수 없습니다. 둘의 차이점을 완전히 이해해야한다면 둘 다의 어셈블리 언어를 읽어야합니다.
내 속기 이해에 대해 이야기 해 봅시다.
첫번째
a ++, 증분 의 이름입니다 . 왜냐하면 이것은 뒤쪽에서 이해하기 쉽기 때문입니다. 다음 단계로 넘어 가서 생각하는 것은 왜 자기 에너지를 공급하는 것입니다. 이것이 첫 번째 과제이기 때문입니다. 운영자. 즉, 다음과 같은 b = a ++입니다.
int a = 1 ;
// b = a++ ; 与下面等价
b = a; //先赋值
a = a +1;//后自增
a = 1; b = ++ a; 실행 후 b는 1이고 a는 2 입니다. 미래에 a ++를 볼 때, 그것을 post-increment라고 부르고, 왜 그것이 호출되는지 생각해 보면 기본적으로 그것을 매크로 수준에서 이해할 수 있습니다.
같은 방식으로 생각하세요 ++ a
++ a, 증분 앞의 이름 , 왜냐하면 더하기 글쎄요, 이것은 앞쪽에서 이해하기 쉽습니다. 그 생각 옆에, 왜 그것이 첫 증분 연산자이고 할당 연산자를 수행하기 때문에 그 앞에 증분이라고 불립니다. . 즉, 다음과 같은 b = ++ a입니다.
int a = 1 ;
// b = ++a ; 与下面等价
a = a +1;//先自增
b = a; //后赋值
a = 1; b = ++ a; 실행 후 b는 2이고 a는 2 입니다. 두 연산 후의 결과는 다르며 전자의 자동 증가 b는 1이고 후자의 자동 증가 b는 2입니다. 앞으로 ++ a가 표시되면 사전 증분이라고 부르세요. . . .
유형 2
두 번째는 첫 번째 것만 큼 직관적이지 않은 좀 더 구불 구불하므로 코드로 바로 이동하겠습니다.
int a = 5;
// int b 相当于:5 + 6 + 7 = 18
int b = a++ + a++ + a;
// 执行完a++[运算]后a进行自增,不是执行完此条完整语句后a才自增,而是在同一条语句中a++以后的a都是自增以后的值
// a经过两次自增,所以它的值是7
int a = 5;
// int b 相当于:6 + 7 + 7 = 20
int b = ++a + ++a + a;
* a先进行自增,然后执行++a[元运算表达式]时.并且在同一条语句中,++a以后的a的值,都是自增以后的值
// a经过两次自增,所以它的值也是7