002. VARIABLE – 1

Posted on by pkchan
/*
example 002
C language variable declaration
*/

#include <stdio.h>

int main (void) {

           int var; //변수는 최상단에 선언합니다.
           var = 10;
           printf("변수 var의 값은 %d 입니다.",var);
           return 0;

}

002-01 // VARIABLE DECLARATION(data_type) (variableName);

변수의 선언 및 초기화

int a;
int b;
int a, b; //두 개의 변수를 한 줄에 선언
float c;
a = 10;
b = 20;
a = 10, b = 20; //두 개의 변수를 한 줄에 초기화
c = 3.141592f; //float형은 뒤에 f를 붙여서 초기화합니다.

변수의 선언과 동시에 초기화

int a = 0;
int b = 0;
int a = 10, b = 20;
float c = 3.141592f;
double d = 3.141592;

002-02 // VARIABLE NAME

변수의 이름은 대소문자를 구별합니다. A와 a는 다릅니다.
변수의 이름은 영문자와 숫자, _(underscore)만 가능하며, 숫자가 맨 앞에 위치할 수 없습니다.
변수의 이름은 띄어쓰기가 불가능합니다.
변수는 최상단에 선언되어야 합니다.

002-03 // DATA TYPES

+ integer types

type storage size value range
char 1byte = 8bits -128 to 127
short 2bytes -32,768 to 32,767
unsigned short 2bytes 0 to 65,535
int 4bytes -2,147,483,648 to 2,147,483,647
unsigned int 4bytes 0 to 4,294,967,295
long 4bytes -2,147,483,648 to 2,147,483,647
unshigned long 4bytes 0 to 4,294,967,295


+ floating-point types

type storage size value range precision
float 4bytes 1.2E-38 to 3.4E+38 6 decimal places
double 8bytes 2.3E-308 to 1.7E+308 15 decimal places
long double 16bytes 3.4E-4932 to 1.1E+4932 19 decimal places

002-04 // MEMORY ALLOCATION

자료형이 int인 변수 number를 선언하면 메모리에 4byte의 저장 공간이 할당됩니다. 만약 자료형이 double형 이면 8byte가 할당됩니다. 이처럼 변수가 선언되면 각각의 자료형에 따라 메모리에 할당되는 크기가 달라집니다. 변수가 선언되고 메모리에 공간이 할당되면 그 공간을 찾아갈 수 있는 주소가 생성됩니다. C언어에서는 이 주소를 가지고 많은 일을 할 수 있습니다.







예를 들어서 자료형이 int인 변수 number가 선언되면 그림과 같이 4bytes의 공간이 할당되고 1byte마다 주소가 생깁니다. 이해를 돕기 위해 첫 byte의 주소를 100이라고 하면 4bytes의 크기인 int형 변수 number는 100~103까지의 주소가 생성됩니다. 변수 이름에 단항 연산자인 &를 붙이면 변수가 저장된 공간이 시작되는 주소를 알 수 있습니다.

002-05 // CHARACTER TYPE

char digit = ‘a’; 와 같이 사용합니다. 작은따옴표를 붙이지 않는다면 변수로 인식하기 때문에 문자는 꼭 작은따옴표 안에 넣어 줘야 합니다. 변수에는 숫자 이외의 문자는 국제 협약에 의해 ASCII 코드로 변환되어 대입됩니다. 이로써 char형 변수도 정수를 가진 자료형이 되고 기본적인 연산도 가능합니다.

002-06 // CONSTANT, LITERAL CONSTANT

constant는 상수입니다. 즉 불변하는 값입니다. C언어에서도 상수를 사용할 수 있습니다.

const (data_type) (variableName) = value;

const double PI = 3.14;

앞에 const가 오는 것을 제외하면 변수와 같습니다. const 즉 상수로 선언을 해주었기 때문에 PI의 값은 변할 수 없습니다. 원주율 3.14가 변하지 않는 것처럼요. 코딩 중에 사용해야 하지만불변성을 가져야 한다면 const를 붙여서 상수로 선언해줍니다.

int a = 10;
printf ("%d * %d = %d", a, 30, a*30);
//10 * 30 = 300;

printf 함수의 2번째 값인 30, 결과 값인 300은 변수에 대입되지 않았지만 메모리에 저장되었다가 화면에 출력됩니다. 이런 수들을 리터럴 상수라고 부릅니다. 상수와 리터럴 상수는 메모리의 READ-ONLY 영역에 저장되며 변하지 않습니다.

Leave a Reply