목차
1. 변수 Variable
프로그램에서 값들이 저장되는 공간을 변수라고 한다.
변수는 사용 전, 미리 선언 declare되어야 한다.
변수 선언이란 프로그램에서 어떤 종류의 변수를 사용할지 컴파일러에게 미리 알리는 것이다.
<변수 선언 형식>
자료형 변수이름 ;
int i ;
int i ;
2. 변수 초기화 initialization
변수 선언과 동시에 값을 넣으면 그것이 초기값이 된다.
변수는 메모리 memory에 만들어 진다.
3. 변수 이름 짓기
3-1 규칙
1) 알파벳 문자, 숫자, 밑줄 문자_ 로 구성됨
2) 공백 X
3) 첫 시작은 알파벳 또는 밑줄 문자_ (숫자X)
4) 대소문자 구별
5) 여러 단어의 변수 이름은 중간에 밑줄을 넣거나, 첫 글자를 대문자로
6) 필요 이상으로 길게 하지 않기(최대 63개 또는 31개까지만 허용)
7) 키워드(keyword) X
※ 키워드? keyword= reserved word
C언어에서 이미 사용되고 있는 고유한 의미를 가진 단어.
예약어라고도 한다.
3-2 좋은 변수 이름이란?
변수의 역할을 가장 잘 설명하는 이름을 지어야 함.
의미가 명확한 변수는 전체 코드를 이해하기 쉽게 만들기 때문이다.
4. 자료형 data type
4-1 자료형 종류
데이터의 타입, 즉 종류라는 의미로 크게 3가지가 있다.
동일한 자료형의 변수를 여러 개는 한 줄로 선언할 수도 있다.
각 자료형마다 저장할 자료형의 크기가 다르다.
1) 정수형 : short, int, long, long long
2) 부동소수점형 : float, double, long double
3) 문자형 : char
4-2 왜 다양한 자료형을 사용할까?
나는 온라인에서 온갖 잡화를 판매하는 사장이다.
오늘은 손바닥 만한 크기의 솜 인형 1개, 내 몸집만한 유리 장식품이 주문으로 들어왔다.
나는 적당한 택배 상자에 해당 물품을 포장해야 한다.
만약 똑같은 재료와 크기의 상자에 각 상품을 담으면 어떨까?
매우 비효율적이다.
솜 인형을 담고 나면 빈 공간이 너무 남는다.
유리장식품을 담을 때는 택배 상자 공간이 작을 수 있다.
자료형도 마찬가지다.
저장할 수 있는 한계가 있기 때문에, 최대한 효율적으로 메모리 공간을 사용하여 프로그래밍 처리 속도를 늘리는 데 그 취지가 있다.
4-3 각 자료형별 저장 크기 byte단위
1) 정수형 : short 2, int 4, long 4, long long 8
2) 부동소수점형 : float 4 , double 8, long double 8
3) 문자형 : char 1
4-4 상수 constant
실행 중에 변경되지 않는 값
5. 정수형
5-1 자료형 크기
* short형 16비트 =2바이트
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
총 16비트 각 비트마다 0또는 1이 올 수 있으므로, 2X2X2...X2=2의 16승= 65536(32768*2)가지의 숫자 표현할 수 있다. 첫 비트는 부호를 나타낸다. 따라서 -32768~32767까지의 정수를 표현할 수 있다. |
* int형 32비트 = 4바이트
* long형 32비트 = 4바이트
---> 약 -21억~ 21억까지의 정수 표현
※비트, 바이트
비트 bit : 컴퓨터에서 사용하는 정보의 최소단위, 한 비트당 선택지는 0또는 1로 2진수로 표현된다.
바이트 byte : 8개의 비트가 모인 것
5-2 unsigned 수식자
unsigned int x;
unsigned speed;
★양수만을 나타낸다는 것을 의미
음수가 제외되면 같은 비트로 더 넓은 범위의 양수를 나타낼 수 있다.
unsigned는 unsigned int형을 의미한다.
-2 | -1 | 0 | 1 | ||||
0 | 1 | 2 | 3 |
(unsigned double X)
5-3 오버플로우
변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하면 오버플로우가 발생한다.
가장 처음으로 돌아가서 시작한다.
컴파일러는 아무런 경고를 하지 않으므로 더욱 주의해야 한다.
5-4 입출력 형식 지정자
자료형 | 형식 지정자 |
short | %hi |
int | %d |
long | %ld |
long long | %lld |
5-5 정수 상수
붙이지 않아도 되지만, 프로그래머가 지정하고 싶은 경우 접미사를 붙인다.
접미사 | 자료형 | 예 |
u / U | unsigned int | (10진법) 230321u / 230321U |
l / L | long | (8진법) 023l / 023L |
ul / UL | unsigned long | (16진법)0xA2F7ul / 0xA2F7UL |
※ 8진수는 앞에 0을 붙인다.
16진수는 앞에 0x를 붙이고, 0~9개의 숫자와 A~F 6개의 문자를 사용하여 수를 표현한다.
하드웨어와 관련하여 비트 조작을 할 때는 10진법보다 16진법이 사용하기 편리하다.
16진수에서 하나의 자릿수는 3비트에 해당한다.
ex) 0x0f(16진수) = 0000 2222(2진수)
~진수 | 형식지정자 |
10진수 | %d |
16진수 | %#x |
8진수 | %#o |
5-6 기호 상수 symbolic constant
보통 상수는 이름 없는 리터럴 상수 literal이다.
상수에 변수처럼 이름을 붙이고 싶다면, 기호 상수를 이용한다.
#define을 붙여 전처리기가 처리하도록 한다.
#define WATER 1.5
변수 선언 앞에 const를 붙인다. const는 constant의 약자로, 선언된 변수는 딱 한 번만 값을 저장할 수 있다.
const int WATER = 1.5
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 8차시 부동소수점형, %e, 유효 숫자, 지수표기법, underflow (0) | 2023.03.21 |
---|---|
C언어 7차시 정수형 연습문제 (0) | 2023.03.21 |
C언어 5차시 연습 문제 풀기 2 (0) | 2023.03.20 |
C언어 4차시 연습 문제 풀기 1 (0) | 2023.03.20 |
C언어 3차시 LNK1104, LNK2005 (0) | 2023.03.20 |