증감 연산
int a = 3+5, b=1, c;
int ap, bp;
ap = a++;
bp = ++b;
b = 3 * (ap==8);
c = 5 * (ap!=8);
printf("%d %d %d %d %d", a,b,c,ap,bp);
▶️ 코드 리뷰
| 변수 선언해주는 부분에서 c, ap, bp 는 초기화를 해주지 않았으나 쓰레기 값이 들어가 있는다.
| ap = a의 값(8)을 먼저 대입해주고, a의 값을 증가 시킵니다(후위 증가 연산)
| a = 9
| bp = b의 값(1)을 먼저 증가시키고, bp의 값(2)을 대입시킵니다. bp = 2
| b = 3 * (ap ==8) 은 ap의 값이 8과 같으면 true를 리턴해주는데, C에서는 1을 리턴합니다.
| c = 5 * (ap != 8) 은 ap의 값이 8과 같지 않으면 true를 리턴해주는데 8과 같으므로 false로 0을 리턴합니다.
정답
9 3 0 8 2
전위식, 후위식
전위식 -> 후위식 으로 바꾸기전에 전위식을 중위식으로 변경한 후 중위식에서 후위식으로 변경하는 것을 추천
전위식( prefix )
- / * A + B C D E
▶️ 전위식 -> 중위식
| 연산자, 데이터, 데이터 순으로 오면 연산자를 데이터와 데이터 중간위치로 옮겨줍니다.
| - / * A B+C D E --> + 연산자 다음으로 BC (데이터) (데이터)가 왔기에 B C 사이에 + 를 넣어줍니다.
| + 가 먼저 나왔고, 그 다음엔 * / 가 있는데, 연산 순위는 + 가 높으므로 괄호를 사용해야 합니다.
| - / * A (B+C) D E
| - / A * (B+C) D E
| - A * (B+C) / D E
| A * (B+C) / D - E
중위식( infix )
A * ( B + C ) / D - E
▶️ 중위식 -> 후위식
| 연산자 우선 순위가 제일 높은 (B+C)를 BC+ 로 변경해줍니다. A*BC+/D-E
| 그 다음 연산 순위 * / 를 해줍니다. ABC+*/D-E , ABC+*D/-E
| ABC+*D/E-
후위식( postfix )
A B C + * D / E -
▶️ 후위식 -> 중위식
| 데이터, 데이터, 연산자가 나왔을 경우 연산자를 데이터 사이로 위치합니다.
| A (B+C) * D / E -
| A * (B+C) D / E -
| A * (B+C) / D E -
| A * (B+C) / D - E
+ C언어 출력 타입
%d | 10진수(정수형) |
%f | 실수형 |
%o | 8진수 |
%x | 16진수 |
%u | 부호없는 10진수 |
%p | 포인터의 주소 |
%c | 하나의 문자로 출력 |
%s | 문자열 |
📢
| 출처 : https://www.youtube.com/watch?v=ngYyd063EjE
'잡다한 공부' 카테고리의 다른 글
C언어 전처리 지시문과 #define (0) | 2025.02.21 |
---|---|
[정보처리기사] 정처기 실기 매크로, 비트연산 (2) | 2025.02.18 |
C언어 goto문과 continue문 (4) | 2025.01.31 |
C언어 이중 배열, 다차원 배열 (5) | 2025.01.22 |
ASCII CODE (2) | 2025.01.18 |