본문 바로가기
Language&Framework&Etc/C

5일차

by 머리올리자 2017. 5. 20.

응용연산자 빠진 것

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