나 개발자 진짜 되냐?

[ C++ 기본 문법 2 ] 변수 선언 본문

C++을 시작해봐요!/문법정리를 해보았어요!

[ C++ 기본 문법 2 ] 변수 선언

Snow Rabbit 2025. 2. 14. 21:22
반응형

 

다음은 가장 많이 나올 부분!

 

변수에 대해 알아보자

 


변수는 바구니!! 느낌인건

너무너무 쉽고 많이 했기 때문에 ㅎㅎㅋ 패스하고

 

변수 선언 방법

 

[ 타입 ] [ 이름 ];

[ 타입 ] [ 이름 ] = [ 초기값 ] ;

 

int hp = 100;

 

아주 쉽죠??

 

저번에 배운 출력을 떠올리며

 

체력이 hp만큼 남았다고 출력하려면 어떻게 해야할까?

 

cout << "체력이" << hp << "만큼 남았습니다.";

 

라고 해주면 된다.

 

 

바이트 종류에 대해 간단하게 설명하면

 

 

char 1byte ( -128 ~~ 127 )
short 2byte ( -32.768 ~~ 32.767 )
int 4byte ( -21.4억 ~~ 21.4억)
__int64 ( 언더바 두개 )  8byte ( 엄청엄청엄청엄청 크다 )

 

int 범위는

-21.4억 에서 21.4억 정도이다보니

대부분의 경우 int를 사용한다고 한다.

 

C#에서는 정수냐 실수냐의 차이로 float와 int를 사용했는데

여기는 약간 다른가보다.

 

이 친구의 문제는 딱 하나

 

만약에 short b로 선언해준 것에 b값이 32.767 이라고 치고

b+1 한값을 출력할때 값은

이론상 32.768이 나와야하는데

부호가 있다보니 논리적 계산에 의해

-32.768이 나온다

왜? 최상위비트는 부호비트이기 때문..!

=> 이 증상을 우리는 정수 오버플로우라고 한다. 

 

그래서 새로운 친구가 등장한다.

 

위에 적어준 4개의 종류는 다 singed,
즉 부호가 있는 친구들이고
없는 친구들도 있다.

 

 unsinged char 1byte ( 0 ~~ 255 )
 unsinged short 2byte ( 0 ~~ 65,535 )
 unsinged int 4byte ( 0 ~~ 42.8억 )
 unsinged __int64 ( 언더바 두개 )  8byte ( 0 ~~ 엄청엄청엄청엄청 크다 )

 

즉, 여기서는 최상위비트를 양수로 보겠다는 의미가 된다.

양수는 1이라는 표현이되고 부호이기 때문에 -가 붙게 된다.

 

❗❗ unsinged라고 필수적으로 사용해야하는건 아니다. ❗❗ 

 

 

반응형