안녕하세요.
D.U.T입니다.
클릭 & 방문해주셔서 감사합니다.
유튜브를 보다가 유익한 말이 있어 기록을 남깁니다.
'시장의 공급과 수요가 내 연봉을 결정한다'
이 말을 듣고 프로그래밍 공부를 결심했습니다.

C언어 공부를 시작했고 공부한 내용을 정리하는 포스팅입니다.
부족한 부분이 있을 수 있으니 참고하시기 바랍니다.
■ 상수 ( Constant )
상수(Constant)는 변하지 않는 숫자를 의미한다. 항상 같은 수!
● 숫자형 상수 ( Numeric Constant )
숫자형 상수(Numeric constant)는 기본적인 형태의 상수이다. 정수형 상수와 실수형 상수로 나눈다.
숫자형 상수 | |
정수형 상수 ( 1, 5, -2, 3, -5 ) |
실수형 상수 ( 0.18, 34.53, -8.8 ) |
※ C언어 프로그램 사용 (예시)
( 정수형 상수 ) unsigned int number = 8899;
( 실수형 상수 ) float p = 8.15;
앞에서는 모두 10진수로 정수형 상수를 표현하였다. C언어는 8진수, 10진수, 16진수 형식으로 모두 사용할 수 있다.
▷ 8진수
8진수는 10진수와 구별하기 위해 숫자 앞에 숫자 0을 붙여서 사용한다.
unsigned int number = 012; /* 10진수 값은 10 */
unsinged int number2 = 024; /* 10진수 값은 20 */
▷ 16진수
16진수는 다른 형식과 구별하기 위해 숫자 앞에 0X 또는 0x를 붙여서 사용한다.
unsigned int number = 0xa; /* 10진수 값은 10 */
unsinged int number2 = 0X14; /* 10진수 값은 20 */
※ 10진수, 16진수, 8진수 비교표
10진수 | 1 | 2 | 3 | 4 | 5 |
16진수 | 1 | 2 | 3 | 4 | 5 |
8진수 | 1 | 2 | 3 | 4 | 5 |
10진수 | 6 | 7 | 8 | 9 | 10 |
16진수 | 6 | 7 | 8 | 9 | A |
8진수 | 6 | 7 | 10 | 11 | 12 |
10진수 | 11 | 12 | 13 | 14 | 15 |
16진수 | B | C | D | E | F |
8진수 | 13 | 14 | 15 | 16 | 17 |
개인적으로 16진수로 코드를 작성하는 것을 많이 봤다. 8진수 코드는 보지 못했는데 8진수는 어디에 쓰이는지 궁금하긴 하다.
● 문자형 상수 ( Character Constant )
영문자 | 숫자 | 특수 문자 |
C | 3 | * |
문자형 상수는 작은 따옴표( ' )를 사용하여 프로그램에서 문자를 표시한다.
특수문자, 숫자, 영문자를 구분할 수 있다. 모두 작은 따옴표( ' )를 붙여서 사용하면 소문자, 대문자, 숫자, 특수 문자 등을 모두 표현할 수 있다.
▷ C언어 프로그램에서 문자형 상수 사용 방법
char lucky = 'C'; /* C는 아스키 값이 67이므로 67을 변수 lucky에 저장 */
● 문자열형 상수 ( Character-string Constant )
한 개 이상의 문자를 문자열이라고 한다. 문자열을 표시할 때는 큰따옴표 ( " ~~~ " )를 사용하면 된다.
사용 예시)
"Nice~!" "시장의 공급과 수요가 내 연봉을 결정" "example~~~~"
앞 포스팅에서 배웠듯이 문자 하는 일반적으로 1바이트이다. 그래서 "Nice~!"를 입력하면 문자는 6개이므로 6바이트가 필요하다고 생각했지만 실제는 7바이트를 사용한다고 한다.
그 이유는 문자열 마지막 자리에 비어있다라고 의미하는 0을 추가하기 때문이라고 한다.
※ 실제 메모리 구성
1바이트 | 1바이트 | 1바이트 | 1바이트 | 1바이트 | 1바이트 | 1바이트 |
N | i | c | e | ~ | ! | 0 |
7바이트 |
■ 변수 ( Variable ) - 데이터 저장 공간
변수(Variable)는 프로그램 실행 중에 변하는 값을 의미!
변수(Variable)는 사용자로부터 데이터를 받아서 처리하는 저장 공간을 뜻 함!
● 변수 이름
항상 기억해야 한다. 메모리는 1바이트 단위로 주소(Address)를 구분한다. 프로그래머가 숫자로 구성된 메모리 주소를 하나하나 기억하기 어려우므로 쉽게 주소를 사용하기 위해 변수에 이름을 붙여서 사용한다.
int name; /* 4바이트 메모리 저장 공간을 메모리 주소 대신 name 변수 이름을 사용 */
사용한 변수 이름은 컴파일러가 코드를 변환하면서 메모리상 주소로 변경해준다.
※ 변수 이름 사용 경우 주의사항!
변수 이름은 영문자(소문자, 대문자), 숫자, 밑줄( _ )을 조합하여 사용할 수 있다. 그리고 대문자, 소문자를 구별하므로 같은 이름이라도 소문자, 대문자 사용에 따라 서로 다른 이름으로 변수를 사용할 수 있다.
하지만! 모두 숫자로 구성하거나 숫자로는 문자열을 시작하여 변수 이름을 만들 수 없다.
바른 사용 예시)
nice, risk, total, mute, ···
Nice, nice, NICE, nicE, NIce, ··· /* 대문자, 소문자 조합으로 다양한 변수 이름 가능 */
잘못된 사용 예시)
30000, 3_nice, 007, ···
변수 이름은 공백을 포함하여 사용할 수 없다.
nice 3, total mute, ···
C언어 예약어 변수 이름은 사용할 수 없다.
int, char, float, ···
● 변수 선언
변수 선언은 메모리 저장 공간을 할당하는 것!
프로그램에서 필요한 정보를 저장하기 위한 메모리 저장 공간 확보 과정을 '변수 선언'이라고 한다.
unsinged int nice;
unsinged int | nice | ; |
(자료형) 부호없는 4바이트 메모리 사용 |
(변수 이름) 확보한 메모리 공간 이름 |
(구분자) C언어 명령어 구분 |
만약 같은 자료형을 사용할 경우에 쉼표( , )를 활용하여 한 줄로 여러개 변수 선언이 가능하다.
unsinged int nice_1;
unsigned int nice_2;
unsigned int nice_3;
↕
unsigned int nice_1, nice_2, nice_3;
동일한 변수 선언이다.
● 변수 초기화
변수를 선언하면서 초기값을 넣어주는 것을 초기화라고 한다. 초기화 필요한 이유는 다음과 같다. 컴퓨터 메모리는 다양한 프로그램에 의해 공유해서 사용한다. 그러므로 앞 전에 다른 프로그램이 특정 메모리를 사용했다면 값이 남아 있을 수 있다. 메모리에 값이 남아 있으면 다음 프로그램에서는 그 메모리에 어떤 값이 저장되어 있는지 알 수 없다. 값을 알 수도 없으며 메모리가 청소되어 있지 않으면 쓰레기 값이라고 부르기 때문에 메모리 초기화는 필수이므로 변수 초기화가 필요하다.
int nice; /* nice 변수에 무슨 값이 저장되어 있는지 알 수 없음 */
무슨 값이 저장되어 있는지 알 수 없으므로 변수 초기화 필요!
int nice=0; /* nice 변수에 0을 넣어 초기화 */
현업이 바쁘다 보니 오랜만에 업데이트합니다.
감사합니다.
'C언어' 카테고리의 다른 글
C언어 공부 - 자료형 (메모리, 자료형 종류) (0) | 2022.03.13 |
---|---|
C언어 공부 - 프로그래밍 기초 (0) | 2022.03.03 |