안녕하세요! 코딩하는 경제학도 쏘코입니다.

오늘은 각종 표현법에 대해서 알아보는 시간입니다!

목차


    출처 : https://laptrinhx.com/relational-operators-in-c-3020947492/

    0. 기본 연산자

    우리가 현실 세계에서 각종 연산을 하는 것처럼, 당연히 컴퓨터도 연산을 할 수 있습니다.

    연산을 할 때는 연산자와 피연산자의 관계를 봐야하는데, 어떤 연산자는 피연산자 2개를 필요로 하고 (1+2), 어떤 연산자는 피연산자 1개만 있으면 가능한 경우도 있습니다. (-1) 삼항연산자처럼 3개의 항이 필요한 연산자도 있구요. (a == true ? 1 : 2)

     

    너무 복잡한 내용은 뒤로 사고, 가장 기초적인 내용부터 살펴보겠습니다.

    +, -, *, /, %(modulo) 연산은 모두 이항연산자입니다. 항이 2개가 필요하죠.

    음수를 표현하는 -는 단항연산자입니다. 항이 1개가 필요합니다.

    ?는 삼항연산자인데, 앞 조건이 true면 :를 기준으로 앞이 반환되고, false면 뒤가 반환됩니다.

     

    또한 이항연산자의 경우 대부분 같은 타입끼리만 연산이 가능합니다. 이 부분에서 어긋난다면 형변환을 해주거나 별도의 조치를 취해야겠죠. 함수 내부 수정이 필요한데, 지금 배운것으로는 설명할 수 없으니 우선 넘어가도록 하겠습니다.

     

    아래 사진에서 Associativity는 연산 순서를 뜻합니다. left면 왼쪽에서 오른쪽으로 연산되고, right면 오른쪽에서 왼쪽으로 연산되죠. left는 일반적인 경우니 right만 살펴보면, int a = 3이라는 식의 경우, 3이 a에 할당됩니다. 연산 순서가 오른쪽에서 왼쪽으로 가죠? 사실 엄청나게 중요한 부분은 아니기 때문에 감각적으로 알고 넘어가시면 되겠습니다.

     

    출처 : 교수님의 ppt

     

    추가로, 이러한 연산을 할 때 사용자로부터 값을 받아야 하는 경우가 있습니다.

    이전 포스팅에서 cout에 대해서 간략하게 다루고 넘어갔죠?

    출력할 때 사용하는 건 cout이고, 반대로 컴퓨터에 무언가를 입력할 때 사용하는 건 cin입니다.

    out과 in의 차이를 생각하신다면 좀 더 쉽게 이해가 될 것입니다.

    사용법은 cout과 정확히 동일합니다. 대신 cout는 <<를 사용하고 cin은 >>를 사용합니다.

     

    위 내용을 조합해서 간단한 프로그램을 만들어볼 수 있습니다.

    화씨 온도를 섭씨 온도로 바꾸는 것인데, 아주 흔한 예시이기에 보시면 바로 이해하실 수 있을 것입니다.

     


    1. 기타 표현식

    코딩을 하다보면 주석처리를 하고 싶을 때가 있습니다.

    매번 따로 설명서를 작성하는 것보다 코드 옆에 바로 설명을 달면 좀 더 이해하기 편하겠죠?

    이럴 때 사용하는 것이 바로 주석입니다.

     

    만약 한 줄을 주석처리 하고 싶다면 주석처리 하고싶은 말 앞에 // 를 붙이면 되고,

    만약 여러 줄을 주석처리 하고 싶다면 주석 처리를 할 부분 앞 뒤로 /* */를 붙이면 됩니다.

     

     

    VS의 경우 ctrl+k+c를 누르면 주석 단축키를 사용할 수 있습니다.

    반대로 주석을 푸려면 ctrl+k+u를 하시면 됩니다.

    외우기 빡세보이지만 하다보면 몸이 기억합니다..

     

     

    다음 표현식은 Formatting입니다.

    C++는 파이썬과 다르게 우리의 엔터를 정상적으로 인식하지 않습니다.

    실제로 엔터가 아닌 ;표시로 문장구분을 합니다

    이게 코드를 간단하게 표현할 수 있게 해주면서도 보기 어렵게 만들기도 합니다.

    되도록이면 들여쓰기를 잘 지켜서 작성하면 오류를 찾기 쉽겠죠?

     

    각종 스타일이 있지만, 저는 K&R 스타일을 즐겨씁니다. 어떤 스타일이든 잘 동작합니다.


    2. 연산자 고급편

    우리가 일반적으로 사용하는 연산자에서도 더 단축을 시키고 싶은 사람이 있었나봅니다.

    그래서, 더 짧게 사용할 수 있는 좋은 연산자를 만들어 냈습니다.

     

    +=, -=, *=, /=, %=

     

    이 친구들은 자기 자신을 1번만 작성해도 되도록 해 주는 연산자들입니다.

    바로 실전 예시로 설명해보죠.

     

    a에 2씩 더해지는 케이스를 만들기 위해

     

    a = a + 2;

     

    라는 코드식을 만들었습니다. a가 2번 반복되었죠? 이게 귀찮아서

     

    a += 2;

     

    로 줄여쓸 수 있도록 만들었습니다.

     

    지금은 왜 사용하는지 잘 이해가 되지 않을 수 있지만, 쓰다보면 굉장히 편리해서 자주 사용하게 됩니다.

    또한, 1씩 더해주는 경우에는 더욱 특별한 경우이고 자주 쓰이는 경우이기 때문에

    ++ -- 등의 기호를 2번 붙여주는 것 만으로도 사용할 수 있도록 하였습니다.

     

    a = a + 1;

    a += 1;

    ++a;

     

    모두 같은 말이라는 것이죠.

     

    여기서 prefix(전치)와 postfix(후치)의 차이가 등장합니다.

    prefix는 ++x(--x)이고 postfix는 x++(x--)인데,

    prefix의 경우 위의 예시와 같이 바로 1이 증가(감소)하고,

    postfix는 그 줄의 연산이 모두 끝나고 나서 변수에 1을 증가(감소)시킵니다.

     

     

    이 부분에 대한 보다 자세한 내용은 예전에 포스팅해둔 자료에서 다루고 있으니 조회수도 늘려주실 겸 참조해주시면 감사하겠습니다 :)

     

    ssocoit.tistory.com/51?category=920467

     

    [C++] 전위연산자와 후위연산자, ++i 와 i++의 차이

    올해 초까지만 해도 저는 C++코드에서 for문을 돌릴 때 i++를 사용했었습니다. 하지만 어디선가 우연히 주워들은 내용을 바탕으로 i++를 사용하면 컴파일러가 알아서 ++i로 바꿔준다는 이야기를 듣

    ssocoit.tistory.com

     

    또한 비트연산자라는 것도 있습니다.

    이전에 컴퓨터는 0과 1로 구성된 요소들로 문자나 숫자를 인식한다고 했죠?

    여기서 0과 1이 하나의 비트인데, 이것들을 조작해주는 그런 연산자라고 보시면 되겠습니다.

    &은 and, |은 or, ^는 xor, ~는 not을 의미합니다. (이 부분은 지금은 다루지 않도록 하겠습니다. 이산구조 내용..)

    또한 >> << 는 시프트 연산자로, 비트의 위치를 전부 그쪽 방향으로 이동시킵니다. 

    이 비트연산자들도 &= 등으로 줄여서 쓸 수 있습니다.

     

    비트연산자는 사용하기 어렵지만, 잘만 사용하면 연산시간도 획기적으로 줄일 수 있기도 하고, 인간컴퓨터라는 소리를 들을 만큼 존경을 받으실 수도 있습니다(?)

    (간혹 코테 문제 해결할때 이걸 사용하셔서 비트의 신이라며 칭송을 받는 분들이 있습니다 ㅋㅋㅋㅋㅋㅋ)

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기