잘못된 코드 #include void swap(int a, int b); int main(void) { int x = 1; int y = 2; swap(x, y); printf("x: %i, y: %i\n", x, y); // 여전히 x는 1, y는 2 } void swap(int a, int b) { int tmp = a; a = b; b = tmp; } 위 코드는 swap함수 안의 a와 b의 값을 바꾸기는 하지만, main 함수 안에 x와 y는 바꾸지 못한다. 왜냐면 swap함수로 전달되는 값은 복사된 값(pass by value)이기 때문이다. (참고로 C언어는 자바스크립트나 파이썬과 같은 언어와 달리 전부 pass by value로 넘어간다. object랑 비슷하게 생긴 struct도 마찬가지다...
16진수 16진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 로 숫자를 나타낸다. 0에서 9까지는 10진수와 값이 동일하고, A는 10, B는 11, C는 12, D는 13, E는 14, F는 15를 나타낸다. 즉 16진수에서는 한자리 수로 0에서부터 15까지 표현할 수 있다. 그런데 위에서 보다시피, 0에서부터 9까지는 10진수와 동일한 값이라서 10진수와 헷갈릴 우려가 있다. 그래서 16진수에서는 모든 수 앞에 0x 를 붙인다. 이건 아무런 의미가 없고 그냥 16진수라는 뜻으로 붙인다. 예를 들어 16진수의 0은 0x0 으로 표기한다. 그렇다면 이해를 돕기 위해 2진수를 16진수로 바꾸어보자. 8비트가 나타낼 수 있는 가장 큰 수는 255이다. 2진수로는 1..
- Total
- Today
- Yesterday
- jQuery
- 포인터 변수
- react
- Session
- c언어
- JavaScript
- 알고리즘
- rxjs
- Prefix Sums
- package.json
- 깃
- this
- GIT
- useEffect
- oracle
- til
- SQL
- 개발 공부
- youtube data api
- Java
- CSS
- 제네릭스
- 리덕스
- getter
- Redux
- linkedlist
- Conflict
- 인스턴스
- Data Structure
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |