2024.6.24
오늘은 효율적인 데이터 처리를 위해 필요한 다양한 변수의 형태와 특징을 알아본다.
< 변수 선언 방법 > 교재 81p~
예를 들어, 정수를 저장할 변수는 int a; 라고 나타낸다.
int 가 자료형이고, a가 변수명이다. 변수명은 메모리에 붙이는 임시 주소와 같은 개념이다.
컴퓨터의 메모리는 재활용되는데, 프로그램이 종료되면 사용하던 메모리 공간을 반납하고 새로 실행된 프로그램이 그 공간을 사용한다. 새 프로그램에서 종료된 프로그램이 어떤 값을 메모리 공간에 남겨 놓았는지는 알 수 없으므로 의미가 없는데 이를 쓰레기 값이라고 한다.
이 쓰레기 값 때문에 오류가 생길 수 있으므로 반드시 원하는 값으로 바꾸는 초기화 과정이 필요하다.
a = 10; 을 예로 들면 = 라는 대입연산자를 사용하여 오른쪽의 값을 왼쪽으로 저장한다는 의미이다.
# include <stdio.h>
int main(void)
{
int a;
int b, c;
double da;
char ch;
a = 10;
b = a;
c = a + 20;
da = 3.5;
ch = 'A';
printf("변수 a의 값 : %d\n", a);
printf("변수 b의 값 : %d\n", b);
printf("변수 c의 값 : %d\n", c);
printf("변수 da의 값 : %.1lf\n", da);
printf("변수 ch의 값 : %c\n", ch);
return 0;
}
변수를 선언할때는 선언 위치 대입 규칙이 있다.
1. 중괄호의 블록 {} 안에 변수를 선언하며, 선언한 위치부터 블록 끝까지 사용할 수 있다.
2. 변수의 자료형이 같으면 동시에 둘 이상의 변수를 선언할 수 있다.
예) int b, c;
3. 대입 연산자는 연산자 왼쪽의 변수에 오른쪽 값을 저장한다.
4. 변수는 대입 연산자 왼쪽에서는 저장공간이 되고, 오른쪽에서는 값이 된다.
< 정수 자료형 >
변수의 형태는 자료형 혹은 데이터형이 있는데, 크게 정수형과 실수형이 있다.
같은 정수형이라도 메모리 저장 공간의 크기에 따라 char(문자), short, int, long, long long으로 구분된다.
여러가지 정수형 변수 중에서 어떤 자료형을 사용할지 고민된다면 아래의 방법을 따르면 된다.
1. 특별한 경우가 아니면 정수형 변수를 int로 사용한다.
2. long 형은 큰 값을 저장할 때 사용한다.
< unsigned 정수 자료형 >
나이와 같이 음수가 없는 데이터를 저장할 때 unsigned를 사용한다.
앞에서 설명한 자료형에 unsigned만 붙이면 된다.
하지만 unsigned 자료형을 사용할 때는 항상 양수만 저장하고 %u로 출력하기를 권한다.
< 실수 자료형 >
크기에 따라 float, double, long double로 구별하며, 값을 저장할 수 있는 범위가 다르다.
이때, float형은 유효숫자 7자리, double 형은 15자리 범위 내의 값을 사용하는 것이 좋다.
유효 숫자의 개수를 계산하는 것이 것정이라면, 아래와 같은 2가지 방법을 사용하자.
1. 정수형을 기본으로 사용하고, 꼭 필요한 경우에만 실수형을 사용한다.
2. 실수형은 유효 숫자가 많은 double형을 기본으로 사용한다.
< 문자열 저장 >
문자열을 변수에 담아야할때는, char형을 배열 형태로 만들어서 저장한다.
char 배열명[문자열길이+1] = 문자열; 형식으로 쓴다.
예를 들어, apple를 저장하려면 char fruit[6] = "apple"; 이다.
[문자열의 길아+1]로 하는 이유는, 컴파일러가 문자열의 끝에 \0(Null 문자)를 자동으로 추가하기 때문이다.
문자열은 char형을 배열 형태로 만들어 저장하며, %s로 출력된다.
strcpy는 string copy의 줄임말으로, 문자열을 복사한다.
< const를 사용한 변수 >
const를 사용하면 이후에는 값을 바꿀 수 없으므로 반드시 선언과 동시에 초기화해야한다.
초기화하지 않으면 변수의 쓰레기 값이 계속 사용되며,
초기화 이후에 값을 바꾸고자 하면, 컴파일 과정에서 에러 메시지가 나타난다.
그럼에도 const를 쓰는 이유는 복잡한 값에 의미 있는 이름을 붙여 쓸 수 있고, 값이 바뀌지 않음을 보장받을 수 있다.
< 예약어와 식별자 >
예약어는 컴파일러와 사용방법이 약속된 단어이며, 식별자는 필요에 따라 만들어 사용하는 단어이다.
예를 들어,
int age; 에서 int는 예약어이고 age는 식별자이다.
식별자는 중복되지 않는다면 어떤 것이든 사용할 수 있으나 아래의 규칙을 지켜야한다.
1. 알파벳 대문자, 소문자, 숫자, _ 로 만든다.
2. 숫자로 시작할 수 없다.
3. 대문자와 소문자는 서로 다른 식별자로 인식한다.
4. 예약어는 식별자로 사용할 수 없다.
< scanf 함수의 사용법 >
'프로그래밍 언어 > C언어' 카테고리의 다른 글
2024.6.28 (0) | 2024.06.28 |
---|---|
2024.6.27 (0) | 2024.06.27 |
2024.6.26 [혼자 공부하는 C언어]4 - 선택문 (0) | 2024.06.26 |
2024.6.25 [혼자 공부하는 C언어]③ - 연산자 (0) | 2024.06.25 |
2024.6.23 [혼자 공부하는 C언어] - c프로그램의 구조와 데이터 출력방법 (0) | 2024.06.23 |