1) 변수의 유효범위
전역 변수
스택
{} 중괄호의 범위가 생존 범위
같은 이름 두 번 사용할 때 문제
2) 연산 우선순위
짝수 여부
bool isEven = ((hp % 2) == 0);
짝수거나 3으로 나뉘는 값인지
bool isEvenOrDivBy3 = (((hp % 2) == 0) || ((hp % 3) == 0));
3) 타입 변환
int hp = 20;
short hp2 = hp;
float hp3 = hp;
unsigned int hp4 = hp;
위는 모두 컴파일되며, 아래처럼 캐스팅이 생략된 형태.
short hp2 = (short)hp;
float hp3 = (float)hp;
unsigned int hp4 = (unsigned int)hp;
작은 바구니의 것을 큰 바구니로 옮길 때는 괜찮지만, 반대의 경우 문제가 될 수 있음.
int hp = 77777;
short hp2 = hp; // 상위 비트 데이터가 짤린 상태로 저장
float hp3 = hp; // 실수에 맞는 데이터 저장 형식으로 바꾸어 줌. 실수로 변환할 때 정밀도 차이가 있기 때문에 데이터 손실
unsigned int hp4 = hp; // 비트 단위로 보면 똑같은데, 부호비트 유무가 다름.
4) 사칙 연산 관련
곱셈
나눗셈