[C언어] Theme07. 변수 선언하기

2023. 7. 23. 06:00C언어

반응형
SMALL

 

변수는 데이터의 종류에 따라 각각 다른 형태를 사용합니다.

 

정수 → int

실수 → double

문자 → char

문자열 → char 배열

 


 

변수 선언과 사용 방법

 

위의 사진에서 4행에서 7행 부분이 데이터의 종류별로 변수를 선언하는 부분입니다.

 

 

int a; → int형 변수 a 선언

 

int b, c; → 2개의 int형 변수 b, c를 동시에 선언

※변수의 자료형이 같으면 동시에 선언 가능

 

double da; → double형 변수 da 선언

 

char ch; → char형 변수 ch 선언

 

대입 연산자(=)는 연산자 위에서 선언한 변수에 오른쪽의 값을 저장합니다. 변수를 선언하면 메모리에 일정한 크기의 빈 공간이 생기는데, 이 빈 공간에 데이터를 넣을 때 사용합니다.

 

a = 10; → int형 변수 a에 정수 10 대입

 

b = a; → int형 변수 b에 변수 a읭 값 대입

 

c = a + 20; → int형 변수 c에 a의 값과 정수 20을 더한 값 대입

 

da = 3.5; → double형 변수 da에 실수 3.5 대입

 

ch = 'A'; → char형 변수 ch에 문자 'A'대입

SMALL

 

 


정수 자료형

 

C 언어에서 정수 자료형은 프로그래밍에서 정수 값을 저장하는 데 사용되는 데이터 타입입니다. 정수 자료형은 메모리에서 정수 값을 저장하기 위해 사용되며, 변수를 선언할 때 사용됩니다. C 언어에서는 다양한 크기와 부호 유무에 따른 정수 자료형이 제공됩니다.

 

- C 언어의 주요 정수 자료형

1. char

크기: 1 바이트 (8 비트)

범위: -128 ~ 127 또는 0 ~ 255 (부호 유무에 따라 다름)

기본적으로 부호 있는(char) 혹은 부호 없는(unsigned char)로 사용됩니다.

주로 문자를 나타내는 데 사용되지만, 정수 값으로도 사용할 수 있습니다.

 

2. short

크기: 2 바이트 (일반적으로 16 비트)

범위: -32,768 ~ 32,767 또는 0 ~ 65,535 (부호 유무에 따라 다름)

기본적으로 부호 있는(short) 혹은 부호 없는(unsigned short)로 사용됩니다.

 

3. int

크기: 보통 4 바이트 (일반적으로 32 비트), 컴파일러와 플랫폼에 따라 다를 수 있습니다.

범위: 약 -2,147,483,648 ~ 2,147,483,647 또는 0 ~ 약 4,294,967,295 (부호 유무에 따라 다름)

대부분의 상황에서 가장 많이 사용되는 정수 자료형입니다.

 

4. long

크기: 4 바이트 이상 (32 비트보다 크거나 작을 수 있음), 컴파일러와 플랫폼에 따라 다를 수 있습니다.

범위: -2,147,483,648 ~ 2,147,483,647 또는 0 ~ 약 4,294,967,295 (부호 유무에 따라 다름)

int와 비슷한 크기를 가지지만, int보다 더 넓은 범위를 가질 수 있습니다.

 

5. long long

크기: 8 바이트 (일반적으로 64 비트), 컴파일러와 플랫폼에 따라 다를 수 있습니다.

범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 또는 0 ~ 약 18,446,744,073,709,551,615 (부호 유무에 따라 다름)

C99 표준부터 도입되었으며, 64 비트 정수를 표현하는데 사용됩니다.

 

 

 

char형 변수를 출력할 때 %c를 사용하면 변수에 저장된 값을 아스키 코드 값으로 해석하여 그 값에 해당하는 문자를 출력하고, %d를 사용하면 정수로 출력합니다.


unsigned 정수 자료형

 

 

unsigned형에 음수를 저장하고 연산하는 경우에는 부호 비트를 고려하지 않고 항상 양수로 처리하므로 결과가 예상과 다를 수 있습니다.

%u는 부호 없는 10진수로 출력하는 변환문자이고, %d는 부호까지 고려해서 10진수로 출력하는 변환문자 입니다.

 

따라서 unsigned 자료형은 항상 양수만 저장하고 %u로 출력하기를 권장합니다.

 

unsigned 정수 자료형은 C 언어에서 부호 없는 양수 값을 저장하는 데 사용되는 데이터 타입입니다. signed와는 달리 양수 값만을 표현할 수 있으며, 음수 값을 저장할 수 없습니다.

 

unsigned 정수 자료형은 일반적으로 변수가 음수 값을 갖지 않을 때 사용되며, 양수 값의 범위를 더 크게 사용하고자 할 때 유용합니다.

 

C 언어에서는 다양한 크기와 부호 유무에 따른 unsigned 정수 자료형이 제공됩니다.

주로 unsigned int, unsigned short, unsigned long 등이 사용됩니다. unsigned int는 int의 양수 값 범위를 모두 사용하는 데 유용한 자료형이며, unsigned short와 unsigned long은 각각 short와 long의 양수 값 범위를 모두 사용하는 데 사용됩니다.

 

- unsigned 정수 자료형의 특징과 주의점

  1. 크기와 범위: signed 정수 자료형과 마찬가지로 unsigned 정수 자료형의 크기와 범위는 컴파일러와 플랫폼에 따라 다를 수 있습니다. 대부분의 경우, unsigned int는 0부터 약 4,294,967,295까지의 범위를 가집니다.
  2. 부호 없는 값 저장: unsigned 정수 자료형은 오직 양수 값만을 저장할 수 있으며, 음수 값을 저장하려고 하면 예기치 않은 결과가 발생할 수 있습니다.
  3. 연산의 주의: unsigned 정수끼리의 연산은 음수가 아닌 양수의 연산으로 처리됩니다. 따라서 뺄셈 등에서 주의가 필요합니다.

실수 자료형

 

C 언어에서 실수 자료형은 소수점을 가지는 수를 표현하는 데 사용되는 데이터 타입입니다.

 

정수 자료형과 달리 소수점 이하의 값을 저장할 수 있으며, 실수 자료형은 다양한 크기와 정밀도를 가집니다.

 

C 언어에서 기본적으로 제공하는 두 가지 실수 자료형은 float과 double입니다.

 

  1. float:
  • 크기: 보통 4 바이트 (32 비트), 컴파일러와 플랫폼에 따라 다를 수 있습니다.
  • 정밀도: 6~9 자리까지 유효한 숫자를 저장할 수 있습니다.
  • float 형식의 실수 값은 뒤에 'f'를 붙여서 표현합니다. 예: 3.14f
  1. double:
  • 크기: 보통 8 바이트 (64 비트), 컴파일러와 플랫폼에 따라 다를 수 있습니다.
  • 정밀도: 15~17 자리까지 유효한 숫자를 저장할 수 있습니다.
  • C 언어에서 실수 리터럴은 기본적으로 double 형식으로 취급됩니다. 예: 3.14

정수 자료형과 마찬가지로 실수 자료형도 변수를 선언할 때 사용하며, 실수 값의 연산과 표현에 사용됩니다. 실수 자료형의 특징은 다음과 같습니다.

 

  1. 정밀도 손실: 실수 자료형은 소수점 이하의 값을 저장할 수 있지만, 무한한 정밀도를 가지지는 않습니다. 따라서 연산이나 계산에서 정밀도 손실이 발생할 수 있습니다.
  2. 부동 소수점 표현: 실수는 컴퓨터에서 부동 소수점 방식으로 표현됩니다. 이는 매우 큰 값을 표현할 수 있지만, 반올림 오차 등 부동 소수점 연산의 한계가 있을 수 있습니다.

 

 

위의 실행 결과 사진에서 출력한 값과 초깃값이 다릅니다.

 

컴퓨터에서 실수를 표현하는 방식이 오차를 갖고 있기 때문에 이처럼 값이 달라질 수 있습니다.

 

따라서 컴퓨터에서 실수 표현은 오차가 있으므로 자료형에 따라 유효 숫자 범위 내에서 사용해야 하며, float형은 유효 숫자 7자리, double형은 15자리의 범위 내의 값을 사용하는 것을 권장합니다.

※ 실수형은 유효 숫자각 많은 double형을 기본적으로 사용합니다.

 


문자열 저장하기

 

프로그램을 작성하다보면 숫자형 뿐만 아니라 문자열도 변수에 담을 줄 알아야 합니다.

이때 문자열은 char형을 배열 형태로 만들어 저장합니다.

 

 

배열은 기본 자료형을 여러 개 묶어 사용하는 것을 뜻합니다.

컴파일러가 문자열의 끝에 널 문자(\0)를 자동으로 추가하기 때문에 char형을 배열 형태로 만들어 저장할 때는 배열의 크기를 문자열의 길이보다 하나 더 크게 잡아야 합니다.

 

위에 사진의 4행에서 "strawberry"가 10자이므로 fruit 배열의 크기는 최소한 11 보다는 커야 합니다.

 

6행과 7행에서 볼 수 있듯이 문자열은 char형을 배열 형태로 만들어 저장하며 %s로 출력합니다.


문자열 복사하기

 

 

문자열은 숫자형과는 다르게 대입 연산자(=)를 통해서 값을 변경할 수 없습니다.

따라서 char 배열에 새로운 문자열을 저장하려면 strcpy 함수를 사용합니다.

 


const를 사용한 변수

 

 

변수는 저장 공간으로 언제든지 그 값을 바꿀 수 있지만 const를 사용하면 이후에는 값을 바꿀 수 없습니다.

따라서 반드시 선언과 동시에 초기화를 해야 합니다.

 

변수에 const를 사용하면 복잡한 값을 의미 있는 이름으로 쉽게 사용할 수 있고 값이 바뀌지 않음을 보장받을 수 있다는 면에서 편리하게 쓰입니다.

 

반응형
LIST