저번 포스팅까지는 Visual Studio와 C를 활용한 간단한 실습을 진행하였습니다.
혹시 궁금하신 분들은 아래의 포스팅들을 참고해주세요!
2022.12.29 - [IT/C and C++] - [C]프로그래밍을 시작하는 방법
[C]프로그래밍을 시작하는 방법
요즘 프로그래밍이 대세입니다. 학교에서도 교과수업으로 편성될 정도로 프로그래밍 기술은 중요합니다. 이러한 상황에서 언어 하나 배워두면 좋은 경력이 되겠지요? 그래서, 프로그래밍을 시
timemory.tistory.com
2022.12.29 - [IT/C and C++] - [C] visual studio 2022 설치 및 작동
[C] visual studio 2022 설치 및 작동
아무리 프로그래밍 언어를 능숙하게 구사하여 프로그램을 작성하더라도, compiler가 없으면 쓸모가 없습니다. 오늘은 프로그램 작성의 편의와 작성 후 컴파일을 위해 컴파일러 Visual Studio 2022를 설
timemory.tistory.com
2022.12.29 - [IT/C and C++] - [C] Hello, World 예제 분석
[C] Hello, World 예제 분석
저번에는 Visual Studio Community 2022를 설치하는 포스팅을 진행했었습니다. 혹시 기억나지 않으신다면 아래의 포스팅을 클릭해서 읽고 와 주세요! 2022.12.29 - [IT/C and C++] - [C] visual studio 2022 설치 및 작
timemory.tistory.com
2022.12.29 - [IT/C and C++] - [C] printf 함수를 알아보자!
[C] printf 함수를 알아보자!
저번에는 Hello, World 소스 코드를 분석해보았습니다. 이번에는 소스 코드에 있었던 printf 함수를 좀 더 분석해보도록 하겠습니다. 목차 printf 함수 문자열을 출력하는 아주 기본적인 함수입니다.
timemory.tistory.com
글 넣기 기능도 재밌네요. 잡설은 이제 그만하고 바로 오늘 내용 시작해보도록 하겠습니다.
목차
변수?
변수는 하나의 상자와 같은 개념입니다.
우리가 저장하고 싶은 것을 저장하고, 원할 때 꺼내서 사용하는 것이 변수의 개념입니다.
그림을 보시면 변수 A가 있고, 우리는 프로그램에서 변수 A를 요청해서 printf 함수를 통해 출력하고자 합니다.
프로그램이 변수 A에 있는 102라는 값을 가지고 와서 printf 함수가 102를 출력할 수 있게 됩니다.
이렇게 원하는 대로 값을 저장하고 출력할 수 있으면 매우 다양한 활동이 가능해집니다.
(사실 변수 없이 할 수 있는 것이 없다고 말할 수 있습니다.)
변수의 개념을 간단하게 알아보았는데 정확한 정의는 다음과 같습니다.
프로그래밍에서 변수란 문자나 숫자와 같은 값을 저장하고 나타낼 수 있는 메모리, 혹은 그 메모리에 붙은 이름
변수는 메모리 공간 그 자체를 나타낼 때도 있고 이름을 말하는 것일 수도 있기 때문에
포스팅에서 헷갈리는 일이 없도록 합시다!
사실, 두 용어를 구분하지 않아도 둘이 거의 똑같은 개념이라 헷갈릴 이유가 없을 수도 있습니다.
저 같은 경우에는 [메모리 공간 그 자체]가 변수라는 개념에 더 알맞다고 생각하기도 하구요.
원하시는 정의로 외우셔도 됩니다.
상수(나중에 정확한 개념은 포스팅 하겠습니다)와 헷갈리지만 않으면 충분합니다!
변수 선언하는 방법
변수는 원할 때 사용되고 원할 때 사라지는 개념일리가 없죠?
프로그래밍 언어는 대체로 엄격한 규율을 가지고 있기 때문에 우리 말처럼 융통성을 발휘해서 컴퓨터가 동작하지 않습니다. (특히 C나 C++같은 저급 언어에 가까운 언어일수록 말이지요!)
결과적으로, C에서는 컴퓨터에게 "내가 이런 이름으로 변수를 선언할거야" 하고 알려주어야 합니다.
변수를 선언하기 위해서는 몇 가지 정보를 전달해야 합니다. 종류는 다음과 같습니다.
전달할 정보 | 의미 | 비고 |
타입 | 저장될 값의 타입을 결정합니다. | 정수, 문자, 실수형 등 |
이름 | 변수의 이름을 결정합니다. | x, alpha, str, array 등 |
클래스 | 변수의 클래스를 결정합니다. | auto, static, extern, register |
초기값(필수가 아님) | 변수의 초기값을 결정합니다. | int a = 10; 등 |
이 값들은 우리가 변수를 선언할 때 필요한 정보입니다.
각 정보를 어떻게 전달하는지 형식을 알아보겠습니다.
(클래스) (타입) (이름) = (초기값)
static int a = 10;
auto c;
int array;
예제를 보면 꼭 저 형식을 따르는 것은 아님을 알 수 있습니다.
그렇다고 해서 저 예제의 선언들이 틀린 선언이냐? 아닙니다.
생략가능한 형식이 있습니다.
생략하는 방식은 다음과 같습니다.
1. auto를 사용하면 타입을 생략해도 됩니다. (초기값이 필요합니다. 초기값에 따라 변수의 타입이 바뀝니다.)
2. 타입을 쓰면 auto를 생략해도 됩니다. (지역변수의 경우)
3. 타입을 쓰면 extern이 붙은 효과와 같습니다. (전역변수의 경우, 자세한 내용은 후에 추가 포스팅)
지금은 클래스는 익히지 않아도 됩니다. 따른 내용도 익히시려고 노력하실 필요는 없습니다.
지금은 변수 선언에 있어서 "이런 정보가 필요하고 이렇게 선언하는구나"라고 넘기셔도 됩니다.
(근데, 하다보면 알아서 익더라고요?)
변수의 타입에는 무엇이 있나요?
변수의 종류에는 다양한 종류가 있습니다. C에서 존재하는 값들의 타입 종류만큼 변수의 종류도 있습니다.
변수의 종류에는 문자, 정수, 실수, 논리형들이 있습니다. 그 외에도 void 형, 사용자 지정 자료형 등 많습니다만, 이 내용은 추가로 포스팅하겠습니다. (추가로 포스팅하고 싶은게 늘어가네요.... 언제 다하게 될련지 모르겠습니다.)
당장에는 아래의 종류를 익히는 것을 목표로 합시다.
타입 | 의미 | 비고 |
char | 문자형 (1 byte) | 0 ~ 255 |
bool | 논리형 (1 byte) | True(1) or False(0) |
short | 정수형 (2 byte) | -32768 ~ 32767 |
int | 정수형 (2~8* byte) | -2147483648 ~ 2147483647 ( 4 byte 기준) |
long | 정수형 (4 byte) | -2147483648 ~ 2147483647 |
float | 실수형 (4 byte) | +- 3.4e +- 38 |
double | 실수형 (8 byte) | +- 1.7e +- 308 |
*int 정수형의 크기는 사용되는 bit에 따라서 달라집니다. 옛날의 16bit 구동체계면 16bit, 즉 2 byte의 크기를 가지고 있고, 32 bit 구동체계면 4 byte가 됩니다. 현재 자주 쓰이는 64 bit는 무려 8 byte라 정말 큰 값까지 저장이 가능합니다.
위의 표에 나오는 종류는 대개 자주 쓰입니다. 물론 short는 개인적인 기기의 성능이 좋아져 메모리가 커진 지금에는 별로 쓰이지 않는 자료형이 되었지만, long은 아직도 잘 쓰입니다.
float과 double형은 대게 취향차이로 자주 갈리더라구요. 둘 다 별 차이 없지만, 저는 double 형을 좋아합니다.
표에 나와있는 자료형 말고도
unsigned int (부호 없는 정수)
unsigned short (부호 없는 정수)
unsigned long (부호 없는 정수)
unsigned char (부호 없는 값을 가지는 문자)
long long (8byte 정수)
등의 자료형이 존재합니다. 정말정말 가끔가다 쓰시는 분이 있는 정도니 걱정말고 넘겨주셔도 됩니다!
변수의 이름에는 무엇을 쓸 수 있나요?
변수의 이름에도 쓸 수 있는 이름이 있고, 쓸 수 없는 이름이 있습니다.
[변수를 선언하는 방법]에서 이야기 했듯이, 프로그래밍 언어는 엄격한 규율을 가지고 있습니다.
이러한 프로그래밍 언어는 헷갈리는 것을 정말 싫어하는데, 결과적으로 변수의 이름을 지을 때는 다음과 같은 규칙이 적용되게 되었습니다.
1. 대/소문자, 숫자, _(언더바) 사용 가능
2. 숫자로 시작하는 이름은 사용 불가능
3. 공백(Space Bar)는 사용 불가능
4. 이미 지정된 키워드(int, extern, main, if 등)는 사용 불가능
이러한 특징은 후에 포스팅할 [함수]의 이름에도 사용이 불가능하므로 익혀두시면 좋습니다!
마무리
이번에는 변수의 이름에 대하여 알아보았습니다.
변수는 프로그래밍에서 뗄래야 뗄 수 없는 관계이므로 계속 보게 되실 텐데
지금 부터 너무 어려워 하지 않으시는 것이 좋습니다.
당장에 위의 키워드를 모두 외울 필요는 없습니다.
저도 처음에는 키워드가 기억나지 않아서 책이나 인터넷을 뒤져 보고는 했으니까요.
결과적으로 몸이 외우게 되니 너무 걱정하지 않으셔도 됩니다.
'IT > C and C++' 카테고리의 다른 글
[C] 함수란 무엇이고, 어떻게 사용하나요? (2/2) (0) | 2022.12.30 |
---|---|
[C] 함수란 무엇이고, 어떻게 사용하나요? (1/2) (0) | 2022.12.30 |
[C] printf 함수를 알아보자! (0) | 2022.12.29 |
[C] Hello, World 예제 분석 (0) | 2022.12.29 |
[C] visual studio 2022 설치 및 작동 (0) | 2022.12.29 |
댓글