논리 연산자를 이용할때는 short circuit 쇼트서킷이라는 개념을 중요시 해야합니다. short circuit이란 왼쪽에서 오른쪽으로 계산을 하는 논리연산자를 이용하여, 프로그램의 속도를 높힐 수 있는 방법입니다. 쉽게 조사? 계산할수 있는 식을 왼쪽에 두어서, 불필요한 오른쪽의 식을 계산하지 않고 결과를 냄으로써 속도를 높힐 수 있습니다. #include int main(void) { int nMax = -9999, nInput = 0; scanf_s("%d", &nInput); nMax = nInput > nMax ? nInput : nMax; scanf_s("%d", &nInput); nMax = (nInput > nMax ? nInput : nMax); scanf_s("%d", &nInput..
형승격이란, 표현범위가 더 큰 형식(type)으로 인식하는 현상을 말한다. #include int main(void) { int a = 2; double b = 1.5; printf("%d", a + b); return 0; } 이럴 경우 printf()문의 형식문자는 오류를 범하게 된다. a + b의 결과는 int가 아닌 실수형이기 때문에, 실수형의 형식문자로 고쳐주어야 한다. a(int) 실수형으로의 type promotion 형승격이 일어나게 되는 것이다. char ch = 'A'; 가 있다면 ch (char) < a (int) 이므로 ch + a 의 결과는 'A' + 2 이므로 %d로 했을시 66이 나오고 %c로 했을 경우 'C'가 나오게 된다.
User에는 집(Process)이 있고 그 안에 사는 사람들(Thread)가 있으며, 남에 집에 침범 할 수 있는 일종의 경찰/검사들(Debugger)가 존재한다. Kernel은 정부(구성요소)라고 가정하며, H/W는 영토, 영해, 영공이라고 가정하자. 입출력 같은 경우는 User에서 발생하지 않고, Kernel에서 발생한다. User 모드 어플리케이션은 Kernel의 요소에 접근하는 것 뿐이다. 그리고 접근하기 위해 kernel의 추상화된 인터페이스인 file을 놓아준다. File은 Buffer(Memory)를 가지고 있는데, 하나는 Write 용 또 하나는 Read 용이라고 가정. getchar()는 buffer로부터 한글자를 퍼올린다. scanf()는 형식문자에 맞게 꺼내온다. gets()는 한줄 ..
실수형에 대해, float 는 단정도형이며 32bits (소수점이하 6자리) double 는 배정도형이며 64bits (소수점이하 15자리) long double 는 특수정도형이며 80bits ( 그 이상) // 단, long double을 지원 안하는 컴파일러들이 있다. float 123.0; // float 인식 double 123.0; // double 인식 123.0F; // float 인식 123.0; // double 인식 중요! float 형식은 '오차'를 가짐. why? 근사값 처리를 하기 때문에. printf("%f\n", 2147483648.0F - 20); // 2147483648.000000 printf("%f\n", 2147483648.0F - 40); // ..
- Total
- Today
- Yesterday
- 공부
- 1차원 배열
- Algorithm
- 알고리즘
- 3차원 배열
- 강의
- 공간복잡도
- 포인터
- 프로그래밍
- C
- 직접 지정
- 다차원 배열
- 자료구조
- call by value
- call by reference
- 비트필드
- 형승격
- 배열
- 구조체
- 시간복잡도
- 간접 지정
- 파이썬
- 회전리스트
- 2차원 배열
- 공용체
- timecomplexity
- 종류
- 재귀함수
- inflearn
- codeit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |