하나 하나 알아가는 프로그래밍

4. 프로그램의 구조와 연산자 본문

프로그래밍/C Language

4. 프로그램의 구조와 연산자

Metallic 2018. 4. 20. 23:44

 본 내용에 들어가기 전에 한 가지 퀴즈를 내도록 하겠습니다. 아래 글자를 해석해보세요.

7JWI64WV7ZWY7IS47JqUISDrsJjqsJHsirXri4jri6ReXg==


 이 형식이 뭔지 모르시는 분은 구글에 "Base64"를 검색해보시면 도움이 되실 겁니다.

 먼저 C 언어 프로그램의 구조에 대해서 이야기를 해보도록 하겠습니다. C의 문법은 엄격하면서도 단순합니다. 몇 가지 종류의 문장과 명령어, 단어들만 사용하면, 다양한 프로그램을 작성하는 것이 가능합니다. 아래 기재해둔 소스 코드를 보시면 쉽게 파악이 가능하실 겁니다.


#include <stdio.h>

int main()
{
int a = 3;
int b = 5;
a = a + 7;
b = b + 5;

if(a > 5 && b > 7)
{
printf("%d %d\n", a, b);
}
}


위와 같이 코드를 작성을 하셨다면 아마 10과 10이 출력이 되셨을 겁니다. 컴파일에서 이상이 없고, 실행이 잘 진행되었다면 그 코드에는 구조상의 오류가 없다는 것입니다. 위에 코드에서 &&는 앞으로 말할 연산자 중 하나로 논리 연산자에 해당되는 AND 연산자 입니다.


 이번에는 이어서 연산자에 대해서 알아보도록 하겠습니다. 연산자는 대부분의 분들이 다 외우라고 말씀하시는 분들이 많은데 솔직히 말씀드리면 몇 개만 외우셔도 지장은 없으며 대부분의 분들이 기억을 못하시고 찾아보시면서 하시는 분들 많습니다. 현업에서 종사하시는 분들이야 커리어의 경력에 따라 능력치가 다르기 때문에 아래에 나올 연산자들을 모두 외우신 분들도 있고 하시겠지만 초보자 분들은 다 외우기 보단 실전에 꼭 필요한 몇 가지만 숙지를 꼭 해두시길 바랍니다.

 연산자의 종류에는 대입, 비트, 산술, 증감, 비교, 복합 대입, 논리, 참조 연산자가 존재합니다. 연산식은 연산자(operator)와 피연산자(operand)의 조합으로 만들어집니다. 아래는 해당하는 연산자들의 종류를 나타낸 것입니다.



 말씀드렸다싶이, 이걸 다 외우는 것보단 실전에서 중요하게 다뤄지는 몇 가지를 정확하게 익히는 것을 목적으로 하시기 바랍니다. 아래부턴 간략하게 각 연산자 분류에 대해서 설명 해놓은 것입니다.


<대입 연산자(=)>
 대입 연산자 '='는 오른쪽 계산식의 결과나 값을 왼쪽의 변수에 대입(assign)하라는 의미로 사용됩니다.

<산술 연산자 (+, -, *, /, %)>
 - 곱셈은 '*' , 나눗셈은 '/'을 사용하며, 이는 'x' 또는 '÷'기호가 알파벳 또는 다른 기호들과 유사하기 때문입니다. 곱셈과 나눗셈에서 이들의 결과가 자료형에 따라 소수점 이하 부분 전체가 '버림' 되거나, 일부분이 '절삭' 될 수 있다는 점을 주의해야합니다. (ex. 소수점 아래까지 표현을 해야하는 데 '%d'를 사용하여 수를 표현하였을 경우)

- '%'는 나머지를 계산하는 연산자로, 두 수의 나눗셈 결과 발생하는 나머지 값을 연산 합니다. 이 연산자는 최대 공약수나 소수 찾기 등의 문제를 해결할 때 사용되며 프로그래밍 상에서만 존재합니다.


<비교 연산자와 논리 연산자>
 비교 연산자는 오른쪽과 왼쪽과 계산 결과나 값을 비교하는 연산자이고, 논리 연산자는 논리적 계산을 수행하는 연산자입니다. 비교 연산자는 왼쪽과 오른쪽의 계산 결과나 값을 비교한 결과를 '참(1)'과 '거짓(0)'의 값으로 계산합니다. 논리 연산자는 논리적 계산을 수행하여 마찬가지로 '참(1)'과 '거짓(0)'의 값으로 계산합니다.

<비트 연산자>
 비트 단위 연산자는 2진수 형태의 비트 자리별로 논리 연산을 수행하는 연산자입니다.

<복합 대입 연산자와 증감 연산자>
 복합 대입 연산자와 증감 연산자는 연산식을 간단하게 표현할 수 있는 특별한 연산자입니다.

-복합 대입 연산자는 변수에 특정 값의 연산 결과를 대입해야 하는 연산식을 간단하게 기술하도록 도와줍니다.


- 증감 연산자는 변수의 값을 1씩 증가 또는 감소시키는 연산자이며, 위치에 따라 연산의 시점이 달라집니다. 전위 사용시에는 계산이 수행되기 전에 먼저 실행이 되지만, 후미 사용시에는 계산이 수행된 후에 프로그램이 실행됩니다.

<참조 연산자>
 참조 연산자는 변수가 사용하는 메모리의 주소 값을 나타내는 연산자입니다.

<형 변환 연산자>
 형 변환(type cast) 연산자는 자료형을 바꾸어 주기 위해 사용되는 연산자입니다.

 오늘은 부가적인 내용이 많았었네요 이해가 제대로 가셨는 지 모르겠습니다. 마지막으로 연산자의 우선순위에 대해서 설명하고 포스팅을 마무리하도록 하겠습니다.


 수학 계산식에서도 먼저 계산해야 하는 부분이 있듯이 프로그래밍에 있어서도 동일하게 여러가지 연산자가 복합 사용될 때 먼저 계산해야하는 우선 순위가 존재합니다. 잘 알고 있겠지만 우선순위가 높을수록 먼저 계산되고, 같은 순위의 연산자가 여러 개가 사용된 경우 결합 순서에 따라서 계산 순서가 결정되게 됩니다.



 이것도 외우시지 말고 이해를 하시고 참고를 하시기를 바라겠습니다. 괜히 이런 부분에 힘을 주셨다가는 차후에 중요하고 놓쳐서는 안되는 부분에서 실수를 하시는 경우가 나올 수 있습니다. 이상으로 포스팅은 마치도록 하고 아래 영상 링크를 올려드리니 참고하셔서 자신의 것으로 이해를 하시면 되겠습니다.


<PS. 참고용 강의 영상은 유튜버 '나동빈'님께서 올리시는 영상으로 현재 제가 나가는 진도, 사용하는 교본의 내용과 비슷하여 이 분의 영상을 링크합니다.>


#1)




#2)



'프로그래밍 > C Language' 카테고리의 다른 글

6. 반복문  (0) 2018.05.12
5. 조건문  (0) 2018.04.24
3. 자료형이란 무엇인가?  (0) 2018.04.20
2. 상수와 변수  (0) 2018.04.17
1. C언어 시작. "Hello world!"  (0) 2018.04.17
Comments