응용연산자 빠진 것
Pointer → *(간접지정 연산자)
&(주소 연산자)
sizeof - CPU 사용 x
가급적 자주 사용해라!!
※ wchar_t : ucs16 → 2bytes
ucs32 → 4bytes
sizeof(자료형) - compiler 연산
ex) sizeof(1); = int = 4byte
sizeof('1'); = char = 1byte
sizeof(nData+1.2); → TYPE PROMOTION → double
[ int ][ int ][ int ] = 12byte
int 이름[3] 요소*3
sizeof(aList); 1)
↓
int[5] = 20 2) 나쁜 코드 : 유지 보수가 힘들다. sizeof() 생활화
Ex)
#int main(void)
{
int aList[5]; - 우리가 다뤄야할 정보
memset(aList, 0, sizeof(aList)); - 정보 변경시 수정할 필요가 없다.
memset(aList, 0, 20); - 찾아서 수정을 해야 하는데 찾기도 어려움
return 0;
}
int aList[5];
4x5 = 20;
#int main(void) - 9th 17분 40초
{
int aList[5]; - 우리가 다뤄야할 정보
printf(aList, 0, sizeof(aList));
printf(aList, 0, 20); -
return 0;
}
High Level Language (인간)
↓
Low Level Language
CPU(기계어)
두 수가 같은지 아는 방법
빼보면 된다!!
a-b = 3 이면 a는 b보다 크다.
300 < 300.1F
정수 실수
(부동소수점) → '오차' → 근사값
실수는 절대로 상등 or 부등 연산하면 안됨!!!!!
int main(void)
{
printf("%d\n", 214783647 = 2의 31제곱 -1 : 32비트 정수에서 출력할 수 있는 가장 큰 수)
printf("%d\n", 214783647+1) : -214783648
}
{
printf("%f\n", 214783647.0F)
printf("%f\n", 214783648.0F) - 같게 나온다. 부동소수점 오차
}
{
printf("%d\n", 214783600.0F == 214783648.0F) = 명백히 다른데 같게 나온다. 부동소수점 오차
}
논리연산자
(1)식1 || (2)식2 && (3)식3
(관계 연산) (산술 연산... 등등)
Short Circuit 방식!! - 하지 않아도 될 연산을 안해도 됨 → 성능 향상!!!
Ex) 이상형
눈 >= 김태희 && 얼굴크기 <=김태희
눈이 김태희 보다 작으면 얼굴 크기는 굳이 안봐도 된다
눈 >= 김태희 && 얼굴크기 <=김태희 || 돈 >= 나
(1) (2) (3)
마음 >= 김혜수 - 마음판단 시간... 모름초 외모 >=설현 - 외모판단 시간 3초
(A) (B)
1) A && B - 마음판단이 3시간 걸려서 맞다고 해서 외모에서 밀리면 시간소요 ↑
2) B && A - 외모판단이 아니면 3초만에 끝남
1. 쉬운 연산을 왼쪽에 배치!
2. 자주 적중할 조건을 왼쪽에 배치!
부정문 자주 쓰지 마라!!
ex) !a
a && b && c || d || e&&f
1 2 3
a 에서 No - d에서 OK → 3번 안해도 됨
여러 구문 → 한 구문 : Scope로 묶는다.
여러 항 → 한 항 : 괄호로 묶는다.
page 166 꼭 풀어야 함
'Language&Framework&Etc > C' 카테고리의 다른 글
포인터의 이해(12-1) 포인터란 무엇인가? (0) | 2020.12.07 |
---|---|
6일차 - 기본제어문 (0) | 2017.05.29 |
4일차 (0) | 2017.05.20 |
3일차 (0) | 2017.05.18 |
2일차 (0) | 2017.05.14 |