c기초

002. 변수형 개념 배우기

iloveapeach 2020. 3. 16. 14:18

<출력>

3

 

- #include <stdio.h>

이건 그냥 틀이라고 일단 생각하자.

 

- main()

이것도 마찬가지로 틀이라고 생각하자.

 

- int x;

이런 문장이 새로 나왔다.

int 는 integer 의 약자로 정수 라는 뜻이다. int 라고 쓰면 정수를 저장 할 수 있다는 말이다.

x는 그냥 이름이다.

쉽게 말해서 x라는 친구한테 정수를 집어넣겠다 라는 뜻이다.

이런게 변수다. x라는 이름을 가진 변수는 값이 변할 수 있다. 내가 1을 넣었다가 나중에 2도 넣고 3도 넣을 수 있다.

y랑 z도 마찬가지다. 이름을 y라고 짓고 그안에 정수를 집어넣겠다 이런 말이다.

 

- x = 1;   y = 2;

대충 감이 올 것이다. x 는 1이고 y 는 2이다.

근데 따지고 보면 우리가 아는 등호랑은 조금 다르다.

여기서 등호는 오른쪽값을 왼쪽에 집어넣는다 라는 뜻이다.

그러니까 1이라는 값을 x에 집어넣는다는 뜻이다.

우리가 일상생활에서 쓰는 같다 는 == 이렇게 쓴다. 나중에 다 써 볼 것이다. 알고만 있자.

 

- z = x + y;

방금 설명한 거랑 똑같다.

지금 x의 값은 1, y의 값은 2 이다.

방금 위에서 오른쪽의 값을 왼쪽에 집어넣는다고 했으니까 z에 3이 저장된다.

 

- printf("%d",z);

이건 저번에 본거랑 비슷한데 내용이 다르다.

%d 형식으로 출력한다 z를

이런 말인데 %d 는 10진수로 출력한다 는 말이고 뒤에 z는 z를 출력한다 는 말이다.

z를 10진수로 출력해서 3이라는 수가 나온 것이다.

어려워 보이지만 앞으로 이런거 지겹도록 볼거라서 그렇구나 하고 넘어가자.

대충 이런식인데 악필 죄송

 

이번것도 이해를 어느정도 했으면 자기맘대로 바꿔보자.

값을 바꿔보고, 변수의 이름을 바꿔보자. x말고 abc로 바꾸고 asdf라고 바꾸고...

 

책 내용을 읽어보니까 뒷내용이 많다. 내용이 좀 길어질 것 같다.

와닿지 않는 내용도 있고 int랑 %d 말고도 다른게 엄청 많다. 그냥 안읽어도 좋다. 아니면 간단하게 그렇구나 하고 지나가자.

 

----------------------------------------------------------------------------------------------------------------------------------------------------------

(읽던지 말던지 참고용 계속 하다보면 다 알게 될 내용이다.)

사람한테 이런 문제를 내면 그냥 바로 답을 계산해 낼 것이다.

x=1, y=2 이다. z=x+y 일 때 z의 값은?

3 이라고 답을 낼 수 있다.

근데 c언어 할때 x가 뭔지 y가 뭔지 알려줘야 한다.

방금 예제처럼 int 라고 미리 알려줘야 한다.

 

만약 x=1.1, y=2.2 이다.  z=x+y 일 때 z 의 값은?

방금처럼 int를 사용할 수 없다. 정수가 아니라서 int를 못쓴다.

이럴 땐 float이나 double을 사용한다.

그리고 출력도 %d 가아닌 %f 를 사용한다.

 

그냥 적으면 알아서 숫자 판단하고 출력시키면 안되나 할 수도 있다.

컴퓨터는 메모리를 사용하는데 이게 무한하지않고 한계가 있기에 char, short, int, long, float, double 이런걸 만들었다.

char 는 1바이트를 저장할 수 있고 shart는 2바이트 int, long, float은 4바이트 double은 8바이트까지 저장 할 수 있다.

요즘에는 워낙 컴퓨터가 좋아서 그냥 정수는 int 적고 실수는 double 하면 아무 문제 없을 건데 옛날에는 그랬다카드라.

메모리를 다르게 사용하는 만큼 저장 할 수 있는 값의 범위가 다르다.

char -128 ~ 127

int -2,147,483,648 ~ 2,147,483,647

이런건 사실 정확하게는 모르지만 대충 int형은 21억정도 라고 생각하자. 필요하면 검색하고..

----------------------------------------------------------------------------------------------------------------------------------------------------------