| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 외적
- 비트마스킹
- 백준
- recursion
- ccw
- deque
- 에라토스테네스의 체
- 비트연산
- 알고리즘
- 재귀
- dijkstra algorithm
- BOJ
- BFS
- Algorithm
- 에라토스테네스
- 다익스트라
- binary search
- 투 포인터
- 소수
- CCW알고리즘
- 딕셔너리
- DP
- Two Pointers
- 이진 탐색
- CCW 알고리즘
- Python
- Bitmasking
- 위상정렬
- 큐
- 너비우선탐색
- Today
- Total
꾸꾸리
3-1. 변수와 연산자 (변수) 본문
1-0. 변수란 무엇인가?
수학에서는 정해지지 않은, 그래서 임의의 값을 대입할 수 있는 문자를 가리켜 변수라 한다.
C언어의 변수가 의미하는 바도 이와 비슷한다.
"값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다."
따라서 변수라는 것을 하나 만들면(선언하면), 그 변수의 이름을 통해서 값의 저장 및 참조가 가능하고, 저장된 값의 변경도 가능하다.
1-1. 변수의 선언
1 2 3 4 | int main(void) { int num; // num이라는 이름의 변수선언 } | cs |
위의 코드에서 볼수 있듯이 다음 문장이 변수의 선언문이다.
int num;
이 문장을 구성하는 int와 num이 의미하는 바는 다음과 같다.
int 정수의 저장이 가능한 메모리 공간을 할당합니다.
num 그 메모리 공간의 이름을 num이라 합니다.
변수 num을 선언한 다음에는 num이라는 이름을 이용해서 값을 저장하고 참조할 수 있다.
1 2 3 4 5 6 | int main(void) { int num; // num이라는 이름의 변수선언 num = 20; // 변수 num에 20 저장 printf("%d", num); // 변수 num의 값 참조 } | cs |
C언어에서 = 기호는 값의 대입을 뜻한다. 이 기호를 '대입 연산자'라 하며, 대입 연산자의 오른편에 오는 값을 왼편에 오는 변수에 저장하는 형태로 사용된다. 따라서 위 코드에서 4행이 변수 num에 20이라는 값을 저장한다는 것을 알 수 있다.
1-2. 변수의 다양한 선언 및 초기화 방법
선언된 변수에 처음 값을 저장한느 것을 가리켜 '초기화'라 한다. 그리고 초기화 이후에 저장된 값을 변경할 때에는 그냥 '대입' 또는 '대입연산'을 진행한다고 한다.
1 2 3 4 5 6 | int main(void) { int num; // num이라는 변수의 선언 num = 12; // 변수 num을 12로 초기화 num = 24; // 변수 num에 24를 대입 } | cs |
그런데 C언어세너는 다음과 같이 변수를 '선언과 동시에 초기화'하는 것이 가능하다.
int num = 12;
위의 문장을 실행하게 되면, 변수 num이 메모리 공간에 할당되자마자 12로 초기화한다.
또, 아래와 같이 둘 이상의 변수를 동시에 선언하는 것도 가능하고, 선언 및 초기화하는것도 가능하다.
1 2 3 4 5 | int main(void) { int num1, num2; // 두 개의 변수를 선언 int num3 = 30, num4 = 40; // 두 개의 변수를 선언 및 초기화 } | cs |
[참고] 변수를 선언만 하고 초기화하지 않으면 쓰레기 값(아무런 의미가 없는 값)이 저장된다.
(오류가 뜰 수도 있습니다.)
일반적으로 정수형 변수는 선언과 동시에 0으로 초기화한 다음, 이후에 의미있는 값을 저장하기도 한다.
int num=0;
하지만 이는 절대적으로 지켜야할 규칙은 아닙니다!
1-3. 변수선언 시 주의할 사항
변수의 이름을 지을 때에는 지켜야할 규칙이 몇가지 있다.
* 변수의 이름은 알파벳, 숫자, 언더바(_)로 구성된다.
* C언어는 대소문자를 구분한다. 따라서 변수 Num과 변수 num은 서로 다른 변수이다.
* 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다.
(키워드에 대해서는 조만간 설명하겠습니다.)
* 이름 사이에 공백이 삽입될 수 없다.
따라서 아래의 변수 선언문은 모두 유효하지 않다.
1 2 3 | int 8th; // 변수의 이름이 숫자로 시작했으므로 int happy@; // 변수의 이름에 @와 같은 특수문자는 올 수 없다 int my house; // 변수의 이름에는 공백이 올 수 없다. | cs |
변수의 이름과 관련된 내용이 다소 복잡하게 느껴진다면 가볍게 한번 읽고 넘어가기 바란다.
"변수의 이름을 정할 때에는 변수의 역할에 어울리는, 의미 있는 이름을 지어야 한다."는 것만 알아두자!!
1-4. 변수의 자료형(Data Type)
변수는 크게 두 가지로 부류로 나뉜다.
* 정수형 변수 정수의 저장을 목적으로 선언된 변수
* 실수형 변수 소수점 이하의 값을 지니는 실수의 저장을 목적으로 선언된 변수
변수의 종류가 크게 두 가지로 나뉘는 이유는 정수냐, 실수냐에 따라 값이 메모리 공간에 저장 및 참조되는 방식이 다르기 때문이다(이후에 설명하겠습니다). 정수형 변수는 변수의 크기에 따라 char형, short형, int형, long형 변수로 나뉘고, 실수형 변수도 크기에 따라 float형 변수, double형 변수로 나뉘는데, 이는 다음에 더 자세히 살펴보겠다. 일단은 다양한 형태의 변수가 존재한다는 것만 기억하자.
int num1=24; // num1을 가리켜 int형 변수라 한다.
double num2 = 3.14; // num2를 가리켜 double형 변수라 한다.
'Programming Language > C' 카테고리의 다른 글
| 3-3. scanf와 C언어의 키워드 (0) | 2018.07.18 |
|---|---|
| 3-2. 변수와 연산자 (연산자) (0) | 2018.07.13 |
| 2-2. 주석 및 printf 함수의 이해 (0) | 2018.07.13 |
| 2-1. hello world! (0) | 2018.07.11 |
| 1. C언어는 무엇일까? (0) | 2018.07.11 |