Teach Yourself C 3일차, 변수와 상수에 대한 내용입니다.
간단한 내용이지만 개발을 하면서 계속 사용하게 되는 내용이니 잘 숙지하시면 좋겠습니다.
*** 오늘의 학습 내용
0. 변수와 상수에 대하여 알기.
1. 변수와 상수를 만드는 방법 알기.
2. 변수와 상수의 차이 이해하기.
*** 변수
변수는 컴퓨터의 메모리에서 이름이 붙은 데이터 저장 위치입니다.
프로그램에서 변수의 이름을 사용하면 해당 위치에 저장된 데이터를 가리키게 됩니다.
예를 들어
int num;
이렇게 변수를 선언하면, 정수형 데이터를 저장할 수 있는 공간을 확보한 겁니다. 그리고 이 변수에 10 이라는 숫자를 대입해보겠습니다.
num = 10;
이제 이 구문이 들어있는 프로그램이 종료할 때 까지, 우리는 num 이라는 변수를 출력하면 10 이라는 결과를 얻을 수 있습니다.
해당 데이터가 저장된 곳의 주소도 모르고, 데이터의 크기가 얼마나 되는지 몰라도 변수명만 있으면 변수 안에 저장된 데이터를 얻을 수 있습니다.
때문에 변수의 이름은 굉장히 중요합니다. 변수 이름을 작성하는 규칙이 있을만큼요.
그 규칙은 다음과 같습니다.
0. 이름에 알파벳 문자, 숫자, 그리고 밑줄(_) 을 넣을 수 있습니다.
1. 첫번째 문자는 알파벳 문자여야 합니다. 밑줄도 가능은 하지만 추천하지 않습니다.
2. 대소문자를 구별합니다. count 와 Count 는 다른 변수를 가리킵니다.
3. C 언어의 키워드는 변수 이름으로 사용할 수 없습니다. 이 키워드는 아래의 링크로 첨부합니다.
https://msdn.microsoft.com/ko-kr/library/befeaky0.aspx
몇 가지 예시를 덧붙입니다.
0. percent -> 적합.
1. item_name -> 적합.
2. AnnualProfit -> 적합.
3. _blood_type -> 적합하지만 추천하지 않음.
4. 7years -> 위법. (첫번째 문자가 숫자)
5. continue -> 위법. (C 언어 키워드)
보통 변수 이름을 작성할 때 사용하는 2가지 방법을 사용합니다.
0. 단어의 결합부에 대문자를 사용하는 Camel Notation. ex) customLibrary
1. 단어의 결합부에 밑줄(_) 을 사용하는 방법. ex) custom_library
저는 개인적으로 밑줄을 선호합니다. 이 글을 보시는 분들도 자신이 선호하는 방식을 사용하시면 되겠습니다.
- 숫자 변수 유형
C 언어의 숫자 변수는 다음 두 개의 주요 범주로 나뉩니다.
0. 소수점 이하 부분이 없는 정수 변수. 이는 또 부호가 있는 정수 변수와 부호가 없는 정수 변수로 나뉩니다.
1. 소수점 이하 부분이 있는 실수 변수. (부동 소수점 변수)
- 변수 선언
변수 선언은 컴파일러에게 변수의 타입과 이름을 알리는 일이라고 생각하면 됩니다.
선언의 방식은 아래와 같습니다.
typename varname;
예를 들면,
int score;
double rate;
char input;
등 입니다.
C 언어의 키워드가 아닌 typename 을 사용하고 싶으시다면, typedef 키워드를 써서 유사한 유형을 만들면 됩니다. 하지만 완전히 새로운 유형을 만드는 것이 아니라 기존 유형에 새로운 이름을 하나 더 붙이는 수준의 기능만을 제공합니다.
typedef 키워드의 사용 방법은 아래와 같습니다.
typedef int integer;
이렇게 하면 위 예시로 들었던 int score; 대신
integer score;
라고 쓸 수 있습니다.
- 변수 초기화
변수는 초기화를 해주지 않으면 쓰레기 값을 갖게 됩니다.
변수 선언으로 인해 방을 얻었지만, 방 청소를 아직 하지 않아서 지저분한 상태라고 생각하시면 될 것 같습니다. 때문에 사용하기 전에 초기화를 해주시는 것이 좋습니다. 프로그램의 오동작을 막기 위해서라도요.
방법은 간단합니다.
int score; 라고 선언을 했다면,
score = 10; 라고 값을 대입해주면 됩니다.
*** 상수
상수 또한 변수와 마찬가지로 프로그램에서 사용하는 데이터 저장 위치입니다. C 언어에는 두 가지 종류의 상수가 있는데, 각각 고유한 용도로 사용됩니다.
변수와 차이점이 있다면 프로그램 실행 중에 값이 변하지 않는다는 점 입니다.
- 리터럴 상수
리터럴 상수는 필요할 때 마다 소스 코드 내에 정확하게 입력되는 값 입니다.
1, 'a', 2.5, "abc"
등으로 작성하게 됩니다.
- 기호 상수 또는 심볼릭 상수
기호 상수는 const 키워드와 #define 명령어를 사용해서 만들 수 있습니다.
const 키워드의 사용 방법은, 변수 선언과 비슷합니다.
int max_length = 10;
라는 정수형 변수를 선언하고 동시에 초기화를 합니다.
이 경우 max_length 는 정수형 변수입니다.
하지만 앞에 const 를 붙이면 max_length 는 수정할 수 없는 상수가 됩니다.
const int max_length = 10;
이제 max_length 에 새로운 값을 대입하려고 하면 컴파일러는 에러라고 표시합니다. 앞에서 말했듯 상수는 변하지 않는 값 이기 때문입니다.
#define 명령어의 사용 방법은 다음과 같습니다.
#define 상수이름 값
간단하게 예를 들어보면,
#define MAX_LENGTH 10
이렇게 표현할 수 있습니다.
*** 요약
C 언어의 변수와 상수에 대해서 공부했습니다.
0. 변수는 변하는 값 입니다. 선언하는 방법은 typename varname; 입니다. 변수는 선언 후 초기화 해주셔야 합니다.
1. 변수 이름을 만드는 규칙을 숙지하셔야 합니다.
2. 상수는 변하지 않는 값 입니다.
3. 상수는 리터럴 상수와 심볼릭 상수가 있습니다.
4. 심볼릭 상수는 const 키워드를 사용하거나 #define 명령어를 사용해서 만들 수 있습니다.
*** 변수와 상수의 사용을 보여주는 예제
간단한 예제를 통해서 변수와 상수의 사용을 살펴보겠습니다.
특별히 주석을 달지 않아도 될 만큼 간단한 프로그램입니다. 현재 자신의 몸무게를 파운드로 입력하면 gram 으로 변경해서 출력해주고, 자신의 태어난 해를 입력하면 2000 년도에는 몇 살이었는지 출력해주는 프로그램입니다.
결과를 확인해보지요.
네, 생각한대로 결과가 나왔네요.
3장의 내용은 여기까지입니다.
읽어주셔서 감사합니다.
간단한 내용이지만 개발을 하면서 계속 사용하게 되는 내용이니 잘 숙지하시면 좋겠습니다.
*** 오늘의 학습 내용
0. 변수와 상수에 대하여 알기.
1. 변수와 상수를 만드는 방법 알기.
2. 변수와 상수의 차이 이해하기.
*** 변수
변수는 컴퓨터의 메모리에서 이름이 붙은 데이터 저장 위치입니다.
프로그램에서 변수의 이름을 사용하면 해당 위치에 저장된 데이터를 가리키게 됩니다.
예를 들어
int num;
이렇게 변수를 선언하면, 정수형 데이터를 저장할 수 있는 공간을 확보한 겁니다. 그리고 이 변수에 10 이라는 숫자를 대입해보겠습니다.
num = 10;
이제 이 구문이 들어있는 프로그램이 종료할 때 까지, 우리는 num 이라는 변수를 출력하면 10 이라는 결과를 얻을 수 있습니다.
해당 데이터가 저장된 곳의 주소도 모르고, 데이터의 크기가 얼마나 되는지 몰라도 변수명만 있으면 변수 안에 저장된 데이터를 얻을 수 있습니다.
때문에 변수의 이름은 굉장히 중요합니다. 변수 이름을 작성하는 규칙이 있을만큼요.
그 규칙은 다음과 같습니다.
0. 이름에 알파벳 문자, 숫자, 그리고 밑줄(_) 을 넣을 수 있습니다.
1. 첫번째 문자는 알파벳 문자여야 합니다. 밑줄도 가능은 하지만 추천하지 않습니다.
2. 대소문자를 구별합니다. count 와 Count 는 다른 변수를 가리킵니다.
3. C 언어의 키워드는 변수 이름으로 사용할 수 없습니다. 이 키워드는 아래의 링크로 첨부합니다.
https://msdn.microsoft.com/ko-kr/library/befeaky0.aspx
몇 가지 예시를 덧붙입니다.
0. percent -> 적합.
1. item_name -> 적합.
2. AnnualProfit -> 적합.
3. _blood_type -> 적합하지만 추천하지 않음.
4. 7years -> 위법. (첫번째 문자가 숫자)
5. continue -> 위법. (C 언어 키워드)
보통 변수 이름을 작성할 때 사용하는 2가지 방법을 사용합니다.
0. 단어의 결합부에 대문자를 사용하는 Camel Notation. ex) customLibrary
1. 단어의 결합부에 밑줄(_) 을 사용하는 방법. ex) custom_library
저는 개인적으로 밑줄을 선호합니다. 이 글을 보시는 분들도 자신이 선호하는 방식을 사용하시면 되겠습니다.
- 숫자 변수 유형
C 언어의 숫자 변수는 다음 두 개의 주요 범주로 나뉩니다.
0. 소수점 이하 부분이 없는 정수 변수. 이는 또 부호가 있는 정수 변수와 부호가 없는 정수 변수로 나뉩니다.
1. 소수점 이하 부분이 있는 실수 변수. (부동 소수점 변수)
- 변수 선언
변수 선언은 컴파일러에게 변수의 타입과 이름을 알리는 일이라고 생각하면 됩니다.
선언의 방식은 아래와 같습니다.
typename varname;
예를 들면,
int score;
double rate;
char input;
등 입니다.
C 언어의 키워드가 아닌 typename 을 사용하고 싶으시다면, typedef 키워드를 써서 유사한 유형을 만들면 됩니다. 하지만 완전히 새로운 유형을 만드는 것이 아니라 기존 유형에 새로운 이름을 하나 더 붙이는 수준의 기능만을 제공합니다.
typedef 키워드의 사용 방법은 아래와 같습니다.
typedef int integer;
이렇게 하면 위 예시로 들었던 int score; 대신
integer score;
라고 쓸 수 있습니다.
- 변수 초기화
변수는 초기화를 해주지 않으면 쓰레기 값을 갖게 됩니다.
변수 선언으로 인해 방을 얻었지만, 방 청소를 아직 하지 않아서 지저분한 상태라고 생각하시면 될 것 같습니다. 때문에 사용하기 전에 초기화를 해주시는 것이 좋습니다. 프로그램의 오동작을 막기 위해서라도요.
방법은 간단합니다.
int score; 라고 선언을 했다면,
score = 10; 라고 값을 대입해주면 됩니다.
*** 상수
상수 또한 변수와 마찬가지로 프로그램에서 사용하는 데이터 저장 위치입니다. C 언어에는 두 가지 종류의 상수가 있는데, 각각 고유한 용도로 사용됩니다.
변수와 차이점이 있다면 프로그램 실행 중에 값이 변하지 않는다는 점 입니다.
- 리터럴 상수
리터럴 상수는 필요할 때 마다 소스 코드 내에 정확하게 입력되는 값 입니다.
1, 'a', 2.5, "abc"
등으로 작성하게 됩니다.
- 기호 상수 또는 심볼릭 상수
기호 상수는 const 키워드와 #define 명령어를 사용해서 만들 수 있습니다.
const 키워드의 사용 방법은, 변수 선언과 비슷합니다.
int max_length = 10;
라는 정수형 변수를 선언하고 동시에 초기화를 합니다.
이 경우 max_length 는 정수형 변수입니다.
하지만 앞에 const 를 붙이면 max_length 는 수정할 수 없는 상수가 됩니다.
const int max_length = 10;
이제 max_length 에 새로운 값을 대입하려고 하면 컴파일러는 에러라고 표시합니다. 앞에서 말했듯 상수는 변하지 않는 값 이기 때문입니다.
#define 명령어의 사용 방법은 다음과 같습니다.
#define 상수이름 값
간단하게 예를 들어보면,
#define MAX_LENGTH 10
이렇게 표현할 수 있습니다.
*** 요약
C 언어의 변수와 상수에 대해서 공부했습니다.
0. 변수는 변하는 값 입니다. 선언하는 방법은 typename varname; 입니다. 변수는 선언 후 초기화 해주셔야 합니다.
1. 변수 이름을 만드는 규칙을 숙지하셔야 합니다.
2. 상수는 변하지 않는 값 입니다.
3. 상수는 리터럴 상수와 심볼릭 상수가 있습니다.
4. 심볼릭 상수는 const 키워드를 사용하거나 #define 명령어를 사용해서 만들 수 있습니다.
*** 변수와 상수의 사용을 보여주는 예제
간단한 예제를 통해서 변수와 상수의 사용을 살펴보겠습니다.
특별히 주석을 달지 않아도 될 만큼 간단한 프로그램입니다. 현재 자신의 몸무게를 파운드로 입력하면 gram 으로 변경해서 출력해주고, 자신의 태어난 해를 입력하면 2000 년도에는 몇 살이었는지 출력해주는 프로그램입니다.
결과를 확인해보지요.
네, 생각한대로 결과가 나왔네요.
3장의 내용은 여기까지입니다.
읽어주셔서 감사합니다.