C 언어의 a ++ 및 ++ a에 대한 속기 이해

     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

 

추천

출처blog.csdn.net/qq_39463175/article/details/109069574