[4-4] 표현식 평가

2024. 9. 3. 15:12·📚 STUDY/🔥 C

[표 4-2] 일부 C 연산자 표

 

a = b += c++ - d + --e / -f

 

이 표현식은 괄호가 없어 가독성이 상당히 떨어짐. 표 4-2를 이용해, 이 표현식에 괄호를 붙여보자.

 

// 1. 후위에 괄호
a = b += (c++) - d + --e / -f

// 2. 전위, 단항음수연산자에 괄호
a = b += (c++) - d + (--e) / (-f)

// 3. 나눗셈에 괄호
a = b += (c++) - d + ((--e) / (-f))

// 4. 뺄셈, 덧셈에 괄호
a = b += ((c++) - d) + ((--e) / (-f))
a = b += (((c++) - d) + ((--e) / (-f)))

// 5. 할당에 괄호
a = (b += (((c++) - d) + ((--e) / (-f))))
(a = (b += (((c++) - d) + ((--e) / (-f)))))

 

 

📌 값을 표현할 때의 부분식의 순서

- 대부분의 표현식은 부분식이 평가되는 순서와 상관없이 같은 값을 가짐. 허나, 부분식이 피연산자를 수정하는 경우 이는 달라질 수 있음. 아래의 예시로 확인해보자.

a = 5;
c = (b = a + 2) - (a = 1);
  • 두 번째 구문의 실행은 정의되지 않음. 대부분의 컴파일러의 경우 c의 값은 6(7-1)이거나 2(3-1)일 것
    • 부분식 (b = a + 2)를 먼저 평가했다면 b는 7, c는 6
    • 부분식 (a = 1)을 먼저 평가했다면 b = 3, c = 2

 

✅ 이러한 문제를 방지하기 위해, 부분식에서는 할당연산자를 지양하는 것이 좋음.

 

 

 

💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.

저작자표시 (새창열림)

'📚 STUDY > 🔥 C' 카테고리의 다른 글

Q&A (pow, fmod, 연산자)  (2) 2024.09.03
[4-5] 표현문  (0) 2024.09.03
[4-3] 증감연산자  (0) 2024.09.03
[4-2] 할당연산자  (0) 2024.09.03
[4-1] 산술연산자  (1) 2024.09.03
'📚 STUDY/🔥 C' 카테고리의 다른 글
  • Q&A (pow, fmod, 연산자)
  • [4-5] 표현문
  • [4-3] 증감연산자
  • [4-2] 할당연산자
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94) N
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47) N
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5) N
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    정보시스템 구축관리
    2022년
    opencv
    mocopi
    Body Tracking
    BOJ
    2021년
    Unity
    실기
    알고리즘
    모션캡처
    c기초
    필기
    SW 설계
    C
    Remote Internship
    DB 구축
    컴퓨터비전
    SW 개발
    정보처리기사
    정처기
    azurekinect
    RC
    식별자
    Slam
    C언어
    토익
    Azure Kinect
    프언 활용
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
[4-4] 표현식 평가
상단으로

티스토리툴바