일부 문제에서 ++ 연산자가 있는 일부 행이 포함된 일부 printf() 문을 찾을 수 있습니다. 경쟁 시험의 일부 질문에서 우리는 해당 코드의 출력을 찾기 위해 이러한 종류의 질문을 찾을 수 있습니다. 이 섹션에서 우리는 그러한 종류의 질문의 예를 보고 무엇이 답이 될 것인지 알아 내려고 노력할 것입니다.
예시 코드
#include<stdio.h> int main() { volatile int x = 20; printf("%d %d\n", x, x++); x = 20; printf("%d %d\n", x++, x); x = 20; printf("%d %d %d ", x, x++, ++x); return 0; }
이제 우리는 출력이 무엇인지 추측하려고 노력할 것입니다. 대부분의 컴파일러는 오른쪽에서 왼쪽으로 printf()의 각 매개변수를 사용합니다. 따라서 첫 번째 printf() 문에서 마지막 매개변수는 x++이므로 이것이 먼저 실행되고 20이 인쇄되고 그 후에 값이 20에서 21로 증가합니다. 이제 두 번째 마지막 인수를 인쇄하고 21을 표시합니다. 다른 라인도 이러한 방식으로 계산됩니다. ++x의 경우 인쇄하기 전에 값을 증가시키고 x++의 경우 먼저 값을 인쇄한 다음 값을 증가시킵니다.
더 나은 이해를 위해 출력을 확인하십시오.
출력
21 20 20 20 22 21 21