변수는 값이 바뀌는 것이고 상수는 값이 변하지 않는다고 배웠는데... Rust 언어의 온라인 문서(이하 Rust Book)를 읽으면서 기존의 프로그래밍 언어와 많이 달라진 개념을 하나씩 조금 다른 관점으로 정리해 보려고 합니다. Rust 언어의 프로그래밍에 대한 시각을 음미해 보려고 합니다. https://rinthel.github.io/rust-lang-book-ko/ch03-01-variables-and-mutability.html 변수와 가변성 - The Rust Programming Language 2 장에서 언급했듯이, 기본 변수는 불변성입니다. 이것은 Rust가 제공하는 안전성과 손쉬운 동시성이라는 장점을 취할 수 있도록 코드를 작성하게끔 강제하는 요소 중 하나입니다. 하지만 여전히 rinth..
연결리스트란? 연결리스트란 노드가 연쇄적으로 연결되어 있는 구조로 각 노드는 데이터(data)와 다음 링크(next, 다음 노드의 주소)라는 두개의 필드를 가진다. data 필드는 리스트의 실제 요소를 가지고 next는 리스트의 다음 노드를 가리키는 주소를 가집니다. 그러므로 next 필드는 다음 노드에 대한 포인터가 된다. 전체 연결리스트는 제일 앞의 노드에 대한 포인터로 나타낼 수 있다. 즉 첫 번째 노드를 가리키는 변수 하나만 있으면 리스트 전체를 접근할 수 있다. 여기서는 그것을 head라고 부른다. 마지막 노드의 next는 NULL이라고 알려진 특수한 값을 가진다. 이것은 더이상 다음 노드가 없음을 나타내는 역할을 한다. 노드가 없는 리스트를 널 리스트라고 한다. 그 경우 head=NULL이 된..
이차원배열을 어떻게 malloc하느냐는 질문을 받았는데, 쉽지 않은 주제네요. 이차원 배열을 함수 매개변수로 넘기는 방법을 먼저 살펴보겠습니다. C 언어에서 2차원 배열은 포인터의 배열이고 각 포인터는 COLS칸 배열의 주소를 가집니다. 여기서 ROWS, COLS는 상수를 나타내고 rows, cols는 변수일 수 있습니다. (참고) void func(int array[ROWS][COLS]) { ... void func_vla(int rows, int cols, int array[rows][cols]) { ... void test(int array[][COLS], int rows) { ... void test(int (* array)[COLS], int rows) { ... 첫번째는 상수 크기의 배열을 넘..
- Total
- Today
- Yesterday
- C++ 클래스
- 동적바인딩
- 스트링 +
- sort key
- 이터러블
- contains
- Camel Style
- Lazy evaluation
- comparable
- CompareTo
- 스트링
- indexof
- ToString
- APPEND
- format
- max
- rust
- 지연계산
- 패턴
- python exercise
- 콜렉션
- 자바regex
- Iterator
- zip
- follow
- TypeError
- contentEquals
- 이터레이터
- typedef
- python example
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |