C 언어(2) - 변수 이해하기

C 언어 강의, 변수와 printf 이해하기

Featured image

🔚 짧게 하는 복습

✅ 1. 프로그램을 만드는 기본 양식을 배웠다.

✅ 2. printf의 간단한 활용을 배웠다.

혹시 기억이 안 난다면, 다시 돌아가자


다들 기억을 한다는 전제로, 오늘은 변수라는 것을 다루어보겠다.

역시 영문도 모른 채로 코드부터 써보겠다.

실행해보면 아무 일도 일어나지 않는다..!

우리가 무슨 짓을 한 건지 알아보자


자료형이란?

우선 C언어에서는 3가지 형태의 데이터를 다룰 수 있다. 우리는 이 형태를 자료의 형태, 줄여서 자료형이라고 한다.

정수, 실수, 문자이다. 정수는 소수점이 없는 숫자, 실수는 소수점이 있는 숫자, 문자는 단 한 글자의 문자이다.

여기서 주의할 점은 정수와 실수의 구분은 쉬운데, 문자는 생각보다 많은 범위를 포함한다.

ㄱ, a, !는 누가 봐도 문자이지만, 3, 0 따위도 문자가 될 수 있다.

그래서 우리는 컴퓨터가 구분할 수 있게 ‘‘를 양쪽에 씌워서 구분해준다.

C언어에서 3가지의 자료형은 각각 3개의 이름으로 불리는데

정수int, 실수double, 문자char로 불린다.


변수란?

우리는 대부분 상황에서 컴퓨터에 입력하고, 그 값을 이용해 무언가를 하고, 출력하는 과정을 겪는다.

그런데 잘 생각해봐야 하는 것은, 입력한 무언가를 쓰려면 어느 곳에 저장을 해놔야 하지 않을까?

그렇다. 우리는 그런 저장소를 변수라고 부르기로 했다. (수학에서의 변수와는 다르다.)

그런데 컴퓨터는 조금 무식해서, 한 변수에는 한 가지의 자료형, 또 한 가지의 값만을 담을 수 있다.

즉 A라는 변수에 3과 같은 정수만을 담기로 했다면

3.4나 ‘a’와 같은 값을 후에 넣을 수도 없고, 3과 4를 동시에 넣을 수도 없다.

그림 1

(2번 그림과 3번 그림은 안된다는 소리이다.)


선언이란?

우리는 변수의 이론적인 내용을 배웠다. 여기서 우리가 궁금한 것은 프로그램상에서, 코드에서 변수를 어떻게 만드는가? 이다.

공식을 꼭 외우자. 자료형 변수이름 = 변수에 넣을 값

그러면 대충 아래 그림이 된다.

그림2

우리는 이 과정을 선언이라고 한다. 중요한 것은 언급한 것처럼 자료형과 변수에 넣을 값의 자료형을 맞추어 주어야 한다는 것이다.

int를 만들어 놓고 4.2를 넣어서도 안 되고, double을 해놓고 ‘a’를 넣어서도 안된다.


printf 심화 학습

자 그런데 여기까지 이해했다면, 우리가 변수에 값이 잘 저장되고 있는지가 궁금할 것이다.

그래서 printf를 통해 출력해보는 것을 해보겠다.

이때까지 한 printf는 fix된 값만 다루었지만, 변수를 통해 저장된 값을 다루는 것을 해보겠다.

조금 복잡해보이지만, 컴퓨터는 무조건 코드의 위에서 아래로 실행을 한다.

int main안에 여러 문장이 있지만, 가장 위에서부터 변수 3개를 선언하고 printf로 3개를 출력한다는 코드이다.

특히, printf 부분을 보면 printf의 이름이 print+ format인 이유는 여기서 나온다.

자료형에 맞게 출력을 할 수 있고, 그 값을 문장 사이 원하는 위치에 자유롭게 입력할 수 있기 때문이다.

int%d, doublelf, char%c로 formatting 해주고, 뒤에 그 자리에 출력하고 싶은 변수를 순서대로 pairing 해주면 된다.

여기서는 순서가 중요하다. 앞에 % % %로 3자리를 formatting 했다면, “” 뒤에 변수를 적은 순서대로 pairing 된다.

즉, 원하는 문장을 먼저 적고 변수를 넣고 자리에 %로 formatting 해준 후, 순서대로 변수 이름을 적어서 pairing 해주면 된다는 말이다.


\n이란?

그런데 코드 printf 끝마다 ‘\n’이 붙어있는데 이건 무엇일까?

바로 줄 바꿈이다. 실제로 문장의 \n을 모두 다 지우고 실행해보라, 모두 한 문장으로 붙어서 출력이 된다.

이 \n는 한 문자로 취급되며, 꼭 문장 끝에 있을 필요는 없다. 문장 중간에서도 \n을 입력하면 줄 바꿈이 된다.


다음 수업에서는 변수에 값을 우리가 입력해서 저장하는 방법을 알아보겠다.


📖 오늘의 핵심(다 알기 전까지는 넘어가지 말자❗)

✅ 1. C언어에서 자료형은 정수, 실수, 문자 3가지가 있다.

✅ 2. 변수란 값을 저장하는 곳이며, 선언하는 방법은 자료형 변수이름 = 변수에 넣을 값이다.

✅ 3. printf는 %를 이용해서 formatting 할 수 있다.

✅ 4. \n를 문장 중간에 입력하면 줄 바꿈을 할 수 있다.

⚠️ printf의 ““안에 변수 이름을 적어도 값이 나오지 않는다. 오직 formatting과 pairing으로만 출력이 가능하다.

💣 과제, 자기소개는 나이, 키, 학점을 소개하는 것이 국룰이다. (나이, 키, 학점을 변수로 저장해서 쓰자)

My name is Minsu.
I am 24 years old.
My height is 183.4.
My GPA is A.

를 출력해보자(난이도 下)