안녕하세요. 박사과정 모닝입니다. 오늘은 변수에 대해서 정리해보고자 합니다. 랩뷰를 사용할 때에는 크게 신경 쓰지 않고 아무것도 모르는 채로 그냥 사용했는데, C언어는 강의를 듣다 보니 보다 자세히 알게 되었습니다!
1. 식별자
식별자(Identifier)는 프로그램 라이브러리에서 제공하는 명령어 이외에, 프로그래머가 필요에 따라 선언하는 변수의 이름이나 사용자 정의 함수를 의미합니다. 식별자는 특정 목적을 수행하는 독립적인 존재이기 때문에, 다른 명령어와 구별하여 명령을 수행합니다. C언어의 예약어는 식별자로 사용할 수 없습니다. 식별자를 선언할 때 지켜야 하는 규칙은 아래와 같습니다.
- 알파벳 대/소문자, 숫자, '_' (언더바) 사용 가능
- 알파벳 대문자와 소문자는 서로 다른 문자로 취급함(아스키 코드가 서로 다르기 때문)
- 알파벳 또는 '_'로 시작해야하 함
- 숫자로 식별자를 시작할 수 없음
- 단어 중간에 공백을 사용할 수 없음
- 한글을 사용할 수 없음
- 예약어를 사용할 수 없음
2. 예약어
예약어(Reserved word)는 컴파일러가 특정 목적의 프로그램을 수행하기 위해 사전에 예약해 놓은 명령어를 의미합니다. 간단히 말해서 컴파일러가 미리 선점해 두었으니, 프로그래머는 예약어를 식별자로 사용할 수 없다는 뜻입니다. 즉, 예약어는 고유의 명령을 수행하는 명령어이므로 변수나 함수의 이름으로 사용할 수 없습니다. 다른 말로는 키워드(Keyworkd)라고도 합니다. C언어에서 자주 사용하는 예약어는 다음과 같습니다.
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, swtich, typedef, union, unsigned, void, vol
3. 변수
변수(Variables)란 계속해서 변하는 값으로, 프로그램이 실행되는 동안 수시로 데이터 값이 변하는 정보를 저장하고 있는 식별자를 의미합니다. 변수를 선언하면 컴파일러는 자료형의 크기에 따라 메모리 공간을 확보합니다. 즉, 변수는 데이터 타입의 크기만큼 메모리를 할당받고, 저장공간에 데이터를 저장하기 위한 것이라고 할 수 있습니다.
프로그래머로부터 데이터를 입력받거나 연산을 수행하면 그 결과를 저장할 공간이 필요합니다. 이러한 저장 공간을 가리켜 '변수'라고 할 수 있습니다. 상수 또는 문자, 문자열 등에 대입하기 위한 저장공간입니다. 이때, 상수는 변수와 반대되는 개념으로 한 번 선언하고 정의하면 항상 같은 값을 가지고 있으며 변하지 않는 값을 의미합니다.
4. 변수 이름
변수 이름을 설정하는 규칙은 식별자를 설정하는 규칙과 동일합니다. 알파벳 대소문자, 숫자, '_'(언더바)를 조합하여 구성합니다. 이때, 숫자가 맨 앞에 올 수 없습니다. 이는 컴파일러가 변수와 상수를 확실하게 구분하기 위한 것이라고 합니다. 또한 C언어에서는 알파벳 대문자와 소문자를 각각 완전히 다른 언어로 인식합니다. 아스키 코드 값이 서로 다르기 때문입니다. 따라서 같은 영어 단어를 다른 대/소문자 조합으로 쓴다면, C 언어에서는 이를 서로 다른 변수 이름으로 인식합니다.
또한, 변수는 용도에 맞게 이름을 설정하는 것이 좋습니다. 용도와 상관 없이 a, b, c 이런식으로 변수 이름을 설정한다면 다른 사람이 코드를 읽는 것이 불편하고 개발자 또한 시간이 지나면 변수의 용도를 파악하는 데에 어려움이 있습니다.
변수 이름을 표기하는 방법들 중 많이 사용되는 두 가지 방법이 '카멜 표기법(Camel notation)'과 '스네이크 표기법(Snake notation)'입니다. 카멜 표기법은 단어 2개를 연결할 때, 뒤에 오는 단어의 첫 글자를 알파벳 대문자로 표기하는 방법입니다. (ex. countNumber) 스네이크 표기법은 2개 이상의 단어를 연결할 때, 언더바를 활용하는 방법입니다.(ex. count_number)
5. 변수를 사용하는 이유
변수는 프로그램 유지, 보수 차원에서의 효율성을 위해 사용합니다. 만약 상수로 코드를 짠다면, 나중에 상수 값이 변해야 할 때 코드 전체를 뒤져서 해당 상수에 해당하는 값을 일일이 다 바꿔 주어야 합니다. 그러나, 변수로 코드를 짰다면 변수의 값만 바꿔주면 코드 전체에 걸쳐 해당 값이 변경됩니다. 변수는 변할 수 있는 값을 대입하기 위해 선언하고 사용합니다. 따라서 변수에 저장할 데이터의 크기와 자료형은 항상 신중하게 결정해야 합니다.
'C' 카테고리의 다른 글
[C언어] 자료형 -코드 119 (0) | 2022.12.17 |
---|---|
[C언어] 변수 초기화 1 - 코드119 (0) | 2022.12.17 |
아스키코드, ASCII -코드119 (0) | 2022.12.13 |
문자 입력, 문자열 입력, scanf_s() - 코드119 (0) | 2022.12.13 |
scanf, scanf_s 차이-코드119 (0) | 2022.12.13 |