안녕하세요?

오늘은 변수의 저장 범위에 관하여 자세히 알아보도록 하겠습니다!

제가 지난번 강의에서 변수에 관해서 설명을 해드렸을텐테요, 변수 별로 저장 범위가 있는데 이 부분을 많은 사용자들(저 포함) 이 코딩을 처음 시작할 때 틀립니다.

그래서 오늘은 이런 실수를 예방하게 위해 변수의 저장 범위에 관하여 자세히 알아보겠습니다!

 

​​​​​​• 변수의 저장 범위

모든 변수는 data type 에 따라 저장 범위를 가지고 있습니다. 

아래 표는 많은 자료형의 저장 범위를 나타낸 것입니다.

 

자료형 범위 바이트
char -128~127 1
unsigned char 0~255 1
short int -32768~32767 2
unsigned short 0~65535 2
int -2147483648~2147483647 4
unsigned int 0~4294967295 4
long -2147483638~2147483647 4
unsigned long 0~4294967295 4
long long int -9223372036854775808~9223372036854775807 8
float

+-3.4*10-38~+-3.4*1038

(유효자릿수 = 7)

4
double

+-1.7*10-308~+-1.7*10308

(유효자릿수 = 15)

8
long double

+-3.4*10-4916~1.1*104932

(유효자릿수 = 19)

12
bool 0,1 1/8

 

휴... 숫자가 정말 크네요...

-->여기서 주의할 점은!!

1. 정수형 자료를 저장하기 위해서는 무조건 int 형으로 변수를 선언해야 합니다. (int 형도 문자가 저장 가능합니다.)

2. 문자형 자료를 저장하기 위해서는 무조건 char 형으로 변수를 선언해야 합니다.(char 형도 정수가 저장 가능합니다.)

3. 실수형 자료를 저장하게 위해서는 무조건 double 형으로 변수를 선언해야 한다.

4. 정수의 크기가 2^31 을 넘어가는 자료를 저장하기 위해서는 long long 형으로 자료를 저장해야 합니다.

5. 0 또는 1 만 저장하기 위해서는 bool 을 선언하는 것이 좋습니다.

6. 양수 형태만 저장하기 위해서는 unsigned 형을 사용하세요!!

7. 변수의 크기를 모르고 프로그래밍 할 경우 많은 오류가 날 수 있습니다.
 

*** 실수형 변수를 선언 할 때 저는 double 형을 선호합니다.

 

다음 강의에서는 아스키 코드표에 관하여 알아보도록 하겠습니다.

감사합니다!!!

'C언어 공부' 카테고리의 다른 글

산술 연산자  (0) 2020.02.01
아스키 코드표  (0) 2020.02.01
입력문과 출력문(2)  (0) 2020.01.30
입력문과 출력문(1)  (0) 2020.01.30
CodeupCoder's blog에 오신것을 환영합니다!!  (2) 2020.01.30

안녕하세요?

오늘은 탈출문자와 변환문자, 그리고 출력 서식을 이용한 자릿수 지정에 관해서 알아보도록 하겠습니다.

 

• 탈출문자

탈출문자는 출력함수들에서 사용되는 예외적인 문자들을 말합니다. 

예를 들어 따옴표를 출력할 때는 \'를 출력해야 따옴표가 출력되는 것과 같습니다.

탈출문자(Escape Sequence) 의 종류

탈출문자              기능

\b                 back space

\n                 new line(enter)

\t                 tab

\\                \ 출력

\'                 ' 출력

\"                " 출력

\0               NULL 

%%              % 출력

--> 이런 탈출문자들은 파일명을 출력할 떄 등에 요긴하게 쓰이므로 중요한 것은 외워두는 것이 좋습니다!!

 

• 변환문자

제가 첫 강의를 올릴 때 printf 문과 scanf 문을 사용하면서 %d 라는 것을 사용했는데요, 바로 이것이 대표적인 변환문자입니다.

--> 변환문자는 특정 값을 다양한 형태의 값으로 변환시켜 주는 기능입니다.

--> 여기서 다양한 형태란, 정수에서 이진수로, 정수에서 실수로 등을 말합니다.

변환문자의 종류

변환문자        출력형태

%d               10진수

%lld             64비트 정수

%c               한 문자 형태

%f               float 형태의 실수

%lf              double 형태의 실수

%s              문자열

%o             8진법

%x             16진법

%u            부호없는 10진수

%p            pointer 값을 16진수로

%i             정수

이렇게 많은 변환문자들이 있습니다.

이 변환문자들도 꼭 외워주세요!! 아주 자주 쓰이는 문법입니다.

 

• 출력 서식을 이용한 자릿수 지정

출력 서식을 이용한 자릿수 지정이란 무엇일까요??

바로 자신이 출력하고 싶은 소수점 아래 자릿수까지 출력하는 문법입니다.

이 문법 역시 '소수점 n 자리까지 출력하시오' 라는 문제에서 자주 사용됩니다.

이런 문법을 구사하는 방법은 아주 간단합니다!!

바로 변환문자 앞에 .n을 붙이는 것이죠. (여기서 n은 임의의 수 입니다.)

n은 자신이 원하는 소수점 자릿수로 해 주면 됩니다.

<예>

--> 소수점 3자리 까지 출력하고 싶을 때

#include <stdio.h>

int main()

{

       double a = 3.14;

       printf("%.3lf",a);

       return 0;

}

이 알고리즘의 실행결과는 '3.140' 이 됩니다.

 

• 요약

탈출문자는 출력함수들에서 사용되는 예외적인 문자들이다.

변환문자는 특정 값을 다양한 형태의 값으로 변환시켜 주는 기능이다.

변환문자 앞에 .n을 붙이면 소수점 아래 몇 자리까지 출력할지를 지정할 수 있다.

 

--> 다음 강의에서는 변수의 저장 범위에 관하여 알아보도록 하겠습니다.

 

강의 읽어 주셔서 감사합니다.

'C언어 공부' 카테고리의 다른 글

산술 연산자  (0) 2020.02.01
아스키 코드표  (0) 2020.02.01
변수의 저장 범위  (0) 2020.02.01
입력문과 출력문(1)  (0) 2020.01.30
CodeupCoder's blog에 오신것을 환영합니다!!  (2) 2020.01.30

첫 강의 올립니다!

입력문과 출력문이 워낙 쉽고, 관련된 강의가 많이 있긴 하지만 그래도! 저는 한번 강의를 시리즈로 올려 보고 싶었기 때문에 입력문과 출력문 강의부터 올리도록 하겠습니다.

 

• 입력문

입력문은 사용자가 정한 값이나 문자 등을 컴퓨터가 말 그대로 입력받는 것입니다. 

C언어에서 쓰는 입력문에는 대표적으로 scanf가 있는데요, 지금부터 설명해 드리겠습니다.

예를 보여 드리자면,

#include <stdio.h>

int main()

{

       int a;

       scanf("%d", &a);

}

이렇게 코드를 짤 수 있습니다. (이 코드는 사실상 아무것도 하지 않습니다. 출력되는 값이 없고, 컴퓨터가 입력만 받아 놓기 때문이죠.)

--> 여기서 주의할 점은! 

a 앞에 & 기호를 붙이는 것입니다!! (& 기호를 붙이지 않으면 컴파일 에러가 나니 주의하세요.)

 

• &, 변수에 관한 자세한 설명

여기서 &기호는 변수의 주소를 알려주는 역할을 합니다. 

제가 위 코드에서 만든 'a' 를 코딩에서는 변수 라고 합니다. 변수는 사용자가 지정할 수 있는 값으로, 수학에서의 미지수와 비슷합니다.

변수에 원하는 값을 저장하고, 마음대로 사용할 수 있죠.

변수는 모두 주소를 가지고 저장이 되는데요, 만약 변수들이 이렇게 저장이 되어 있고, a의 값이 13 이었다면

주소      값

0000       9

0001       10

0002       11

0003       12

0004       13

&a의 주소는 '0004'가 되는 것입니다.

scanf 가 이렇게 변수의 주소를 받는 이유는 scanf 에 add 라는 변수를 주었다면, scanf 는 add를 그대로 쓰지 않고, 다른 변수를 선언해 그 변수를

add 변수에 대입하기 때문입니다. 

 

• 출력문

다음으로는 출력문에 대하여 알아보겠습니다. 

출력문은 컴퓨터가 입력된 값을 그대로 출력하는 것입니다.

출력문에는 대표적으로 printf 가 있습니다.

소스 코드를 보자면 다음과 같습니다.

#include <stdio.h>

int main()

{

       int a;

       scanf("%d",&a);

       printf("%d\n",a);

}

--> printf 에는 &기호가 필요가 없습니다.

--> 이 코드는 사용자가 어떤 값을 입력하고, 그 값을 그대로 출력하는 프로그램 입니다.

--> 여기서 \n은 한 줄의 띄운다, 즉 엔터의 뜻을 가지고 있습니다. 이 \n을 생략하는 방법이 있는데요, 그 방법을 다음 강의 주제로 하도록 하겠습니다.

 

• 구분자

마지막으로 설명해 드릴 내용은 구분자 인데요, 두개 이상의 변수를 입력받을 때

(예를 들어 이럴 때) (#include <stdio.h>는 생략)

int price1, price2;

printf("가격을 두 개 입력하세요: ");

scanf("%d %d", &price1, &price2);

printf("%d원과 %d원의 합은 %d원입니다.\n", price1, price2, price1 + price2);

 

--> scanf 에서 price1과 price2 사이에 공백을 넣어 구분한 것을 볼 수 있는데, 이것을 구분자라고 합니다.

 

• 예제

코드업 1001번을 예제로 살펴볼 텐데요, 잎에서 배운 printf 를 활용하면 아주 쉽게 풀 수 있습니다.

완전히 풀어드리지는 않고, 주석만 달아드리도록 하겠습니다.

<예제 풀이>

#include <stdio.h>

int main()

{

        // printf("") 문을 사용해 주어진 문장을 출력

       return 0;

}

--> 여기서 return 0; 은 코드를 중단시키는 것인데, 꼭 필요하지는 않으나 대회 등에서는 꼭 적어 주어야 합니다.

 

• 강의요약

출력문에는 printf 이, 입력문에는 scanf 가 있다.

 

강의 읽어 주셔서 감사합니다.

'C언어 공부' 카테고리의 다른 글

산술 연산자  (0) 2020.02.01
아스키 코드표  (0) 2020.02.01
변수의 저장 범위  (0) 2020.02.01
입력문과 출력문(2)  (0) 2020.01.30
CodeupCoder's blog에 오신것을 환영합니다!!  (2) 2020.01.30

안녕하세요?

CodeupCoder's blog 에 오신 것을 환영합니다.

저는 코드업에서 활동하고 있는 사람이고요, 이 블로그의 주인장입니다.

앞으로는 코드업 강의 말고 이 블로그에 저의 강의를 올릴 것이니 많이 봐주시길 바랍니다.

즐코 하세요!!

감사합니다.

'C언어 공부' 카테고리의 다른 글

산술 연산자  (0) 2020.02.01
아스키 코드표  (0) 2020.02.01
변수의 저장 범위  (0) 2020.02.01
입력문과 출력문(2)  (0) 2020.01.30
입력문과 출력문(1)  (0) 2020.01.30

+ Recent posts