본문 바로가기

내가 꾸는 꿈

C언어의 추가 개념들 [노베이스 게임개발 21일차]

반응형

오늘은 c언어 입문 마지막 시간으로 추가 개념들을 정리하는 시간을 가졌다.

 

먼저 우리가 자주 사용하던 특수문장 대한 내용이다

 

특수문자
   \n  : 다음줄
   \t  :  다음 탭, 탭문자를 사용할 때 사용 프로그램마다 4칸에서 8칸을 띄워줌
   \"  :  따옴표, 문자열 내에 큰따옴표를 출력하고 싶을 때 사용
   \0  : 널 문자, 문자열의 끝을 알려주는 문자

 

그다음은 변수의 타입에 대한 내용이다.

변수의 타입

타입 byte 최소값 최대값 비고
bool 1 0 255 참/거짓
char 1 -128 127 문자
short 2 -2^16 2^16-1 숫자
int 4 -2^32 2^32-1 숫자(가장 빠르게 연산)
long 4 -2^32 2^32-1 숫자(64비트 = 8byte)
long long 8 -2^64 2^64-1 숫자
float 4     소수점수
double 8     소수점수
unsigned - - - 0과 양수만 표현

파일의 처리나 미세한 메모리 조정에 필요하므로 바이트 수는 알고 있어야 한다.

부호가 없는 정수만 사용하고 싶다면 각 정수형 변수 타입 앞에 unsigned를 붙여준다.

 

int는 4byte이며 컴퓨터에서 가장 빠르게 연산할 수 있는 단위이다.

long은 4byte지만 다른 프로그래밍 언어에서는 8byte 또 64bit에서도 8byte이다.

unsigned는 부호가 없다는 뜻으로 선선되지 않으면 부호가 있는 숫자가 된다. 정수형에서만 가능하다.

 

다음으로 overflow에 대한 내용이다.

변수형에 할당될 수 있는 값의 범위를 벗어난 연산은 Overflow가 일어나게 된다.

 

char의 최댓값

0 1 1 1 1 1 1 1

char의 최솟값                                                                                                                                                          +1

1 0 0 0 0 0 0 0

보통 맨 첫 번째 수는 0일 때 양수 1일 때 음수를 나타낸다.

그랬을 때 위의 그림은 1111111의 최댓값인 127을 나타내게 되고

아래그림은 0000000의 -128의 수를 가지게 된다

만약 01111111에서 +1을 한다면 어떻게 될까?

이진수에서 1이 더해지면서 10000000이 되고 이는 char의 최솟값인 -128이 된다.

 

 

 

반대로 underflow도 있다.

0

0 0 0 0 0 0 0 0

-1                                                                                                                                                                                 -1

1 1 1 1 1 1 1 1

위의 00000000에서 -1을 해주게 된다면 컴퓨터는 그 앞자리에 1이 있다고 판단하여 1 00000000 -> 0 11111111이 되게 된다. 

그렇다면 앞자리가 0이므로 음수 중에 가장 큰 수인 -1이 되게 된다.

 

 

printf로 출력하기 위한 문자인 printf format string에 대한 내용이다.

타입 설명
%d 정수형 변환
%c 문자형 변환
%u 부호없는 정수형 변환
%ld long long 변환
%f 소수점수 변환
%s 문자열 변환

 

 

이번에는 연산자에 대한 내용이다.

 

연산자 의미1 의미2 의미3
+ 덧셈 포인터의 주소(타입만큼) 덧셈  
- 뺄셈 포인터의 주소(타입만큼) 뺄셈  
* 곱셈 포인터의 실제값  
/ 나눗셈    
% 나머지    
() 우선순위 지정 함수 호출  
[] 배열 선언 배열 인덱스 포인터 인덱스
& bitwise and 변수의 주소  
| bitwise or    
&& 논리적 and    
|| 논리적 or    

 

후기 : 오늘은 C언어에 대한 여러 내용을 다시 한번 복습을 하면서 추가적인 내용에 대해 공부하였다.

이제 기본적인 C언어 공부는 끝이 났고 원래라면 C++을 공부해야 할 차례지만 우선 웹페이지 개발을 위한 HTML공부를 선행하려고 한다.

 

 

 

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형