변수 Variable 바뀔 수 있는 어떤 값을 보관하는 곳.
[전체 코드]
#include <stdio.h>
int main() {
int a = 123; // 정수형 선언
float b = 3.141592f; // 실수형 선언
double c = 3.141592; // 실수형 선언
printf("a는 %d과 %d과 %d을 더해서 %d \n", 100, 20, 3, a); // 변환문자와 인자
printf("a는 %o \n", a); // 8진수 정수형 변환문자
printf("a는 %d \n", a); // 10진수 정수형 변환문자
printf("a는 %x \n", a); // 16진수 정수형 변환문자
printf("a는 %f \n", b); // 실수형 변환문자
printf("a는 %f \n", 1.0);
printf("a는 %5d \n", a); // 변환문자 서식
printf("b는 %.2f \n", b);
printf("c는 6.3f \n", c);
return 0;
}
[정수형 선언]
// 선언해두고 이후에 값 대입
int a;
a = 123;
// 선언하면서 값도 대입
int a = 123;
- a라는 변수에 정수형의 데이터를 보관하겠다는 뜻.
- 일반적으로 정수 데이터 보관엔 int형 변수를 사용.
[정수형 선언 유형]
타입 | 크기 | 범위 | |
int | 최소 2 바이트, 보통 4 바이트 |
signed | -2,147,483,648 에서 2,147,483,647 까지 |
unsigned | 0 에서 4,294,967,295 까지 | ||
char | 1 바이트 | signed | -128 에서 127 까지 |
unsigned | 0 에서 255 까지 | ||
short | 최소 2 바이트 | signed | -32,768 에서 32,767 까지 |
unsigned | 0 에서 65,535 까지 | ||
long | 최소 4 바이트 | ||
long long | 최소 8 바이트 | signed | -9223372036854775808 에서 9223372036854775807 까지 |
unsigned | 0 에서 18446744073709551615 까지 |
- signed : 음수와 양수 모두 표시 가능한 대신 양수 범위 줄어듦. 그냥 int처럼 언급 없으면 보통 signed.
- unsigned : 양수만 표시 가능한 대신 양수 표현 범위가 두 배 늘어남.
[정수형 변환문자]
printf("a는 %d과 %d과 %d을 더해서 %d \n", 100, 20, 3, a);
// 1 2 3 4 1 2 3 4
- 인자들이 밑의 숫자에 맞는 순서대로 대입돼 결과에 출력. "a는 100과 20과 3을 더해서 123"
// 8 진수
printf("a는 %o \n", a);
// 10 진수
printf("a는 %d \n", a);
// 16 진수
printf("a는 %x \n", a);
- %o : 인자의 값을 8진수로 변환해 출력. "a는 8진수 173"
- %d : 인자의 값을 10진수로 변환해 출력. "a는 10진수 123"
- %x : 인자의 값을 16진수로 변환해 출력. "a는 16진수 7b"
[실수형 선언]
float b = 3.141592f;
double c = 3.141592;
- 소수를 표시할 수 있는 실수형 변수 선언. 만약 정수형 변수에 소수를 대입하면 소수 부분은 다 버려져서 출력.
- 정수형에 비해 다룰 수 있는 숫자의 크기가 엄청나지만, 처음 몇 자리 숫자만 정확하고 나머진 10의 지수 형태로 출력.
- float형 변수에 값을 대입할 때엔 뒤에 f를 꼭 붙여줘야 함. 그렇지 않으면 double형으로 인식해 오류 발생 가능.
[실수형 선언 유형]
타입 | 크기 | 범위 |
float | 4 바이트 | 10진수로 대략 6 자리까지 정확 |
double | 8 바이트 | 10진수로 대략 15 자리까지 정확 |
long double | double 보다 크기가 크고, 정밀도가 높음 |
[실수형 변환문자]
printf("a는 %f \n", b);
printf("a는 %f \n", 1.0); // 소수점이 있는 형태로 써줘야 함
- %f : 실수형인 인자를 실수형으로 출력. 만약 출력할 인자가 변수가 아니고 숫자라면,
꼭 소수점이 붙은 형태로 써줘야 올바르게 출력됨.
[변환문자 서식]
// 출력할 숫자의 총 자리수는 5
printf("a는 %5d \n", a);
// 출력할 숫자에서 소수점 자리수는 2
printf("b는 %.2f \n", b);
// 출력할 숫자의 자리수는 총 6, 소수점 자리수는 3
printf("c는 6.3f \n", c);
- 만약 출력할 인자의 자리수가 변환문자에 설정된 값 보다 크다면, 출력할 인자의 자리수대로 표현함.
a가 12345라면 "%3d"일지라도 12345를 출력. - 변환문자에 설정된 소수점 자리는 반드시 지키며 출력.
b가 3.14이고 "%.5f"라면 3.14000을 출력. - 총 숫자의 자리수를 따질 때, 빈 자리와 소수점도 포함해서 셈.
빈 자리를 임의로 _로 표기하자면 세번째 코드는 "_3.141"로 출력.
[변수 선언 주의사항]
1. 변수 선언은 최상단에 해주는 편이 좋음
2. 웬만하면 영어로 작명하고, 영어와 숫자와 _로만 구성할 것. 이때 숫자가 제일 앞에 올 순 없음
// 얘는 되는데
int my_book01
// 얘네는 안 됨
int my book01
int 01my_book
3. 프로그래밍 언어의 예약어는 변수명으로 사용하지 말자
// 애초에 오류 남
int printf
int int
4. 작명 스타일을 일정하게 고수해주자
// 어느 방식이든 하나로 통일
int ThisIsVariable;
int this_is_variable;
'C언어 공부' 카테고리의 다른 글
06. 조건문, 논리연산자, 관계연산자 (0) | 2024.10.14 |
---|---|
05. 문자형, 입력함수 (0) | 2024.10.14 |
04. 산술연산자, 대입연산자, 비트연산자, 오버플로우 (0) | 2024.10.13 |
02. Hello, World! 분석하기 (0) | 2024.10.12 |
01. CPU와 Register, RAM, Cache, 프로그램의 실행 (2) | 2024.10.12 |