전체 글85 이상한 나라의 앨리스에서 찾은 수학 [이상한 나라의 앨리스]는 어린 소녀 앨리스가 꿈속에서 하얀 토끼를 쫓아 토끼굴에 빠진 뒤 이상한 여행을 하며 겪는 기묘하고 신비로운 경험을 하는 모험담입니다. '앨리스'의 작가 루이스캐럴(Lewis Caroll, 1832~1898)은 이솝, 안데르센과 더불어 세계 3대 동화작가의 한 사람으로 꼽힙니다. 그런데, 루이스 캐럴의 본명은 "찰스 도지슨(Charles Lutwidge Dodgeson)"으로 옥스퍼드 대학의 기호논리학과 수학 퍼즐을 즐겼던 수학교수였습니다. 작가가 수학자인 만큼 소설에는 곳곳에 수학적인 장치가 담겨 있고, 철학적인 대화, 역설 논리, 현란한 언어유희와 수학퍼들이 들어 있습니다. 그래서 한편으로는 난해하다는 평을 듣기도 하지만 문학과 예술 심지어 현대 과학 등에서 다양한 분야에서 .. 2023. 3. 22. C언어 공부하기 - 문자열 함수 구현하기 지난 시간에는 문자열과 배열에 대해서 알아봤습니다. 2020/10/28 - [프로그래밍/C언어] - C언어 공부하기 - 문자열과 배열 잠깐 리뷰를 해보면, 문자열은 문자들로 이루어진 널문자('\0', 값 0)로 끝나는 배열입니다. 문자형 배열, 문자형 포인터 2가지로 정의할 수 있는데, 전자는 배열이므로 변경이 가능하고 후자는 포인터이므로 변경이 불가능합니다. 마지막으로 문자열이 길이를 반환하는 함수 예제를 만들어 봤죠. 이번 시간에는 문자열 함수 몇 가지를 직접 구현해 보도록 하죠. (참고 : The C Programming Language 2nd E.) 다음과 같이 배열과 포인터로 문자열을 정의했다고 합시다. char arr_msg[] = "Hello World!"; char *ptr_msg = "H.. 2020. 11. 1. C언어 공부하기 - 문자열과 배열 이번 시간에는 많이 쓰이는 문자열(Character Strings), 문자배열에 대해서 알아보겠습니다. 생각보다 간단한데요, 문자열이란 이름, 단어, 문장 등 문자들로 이루어진 배열입니다. 그리고 끝은 항상 널(Null)문자 즉 '\0'로 끝이 납니다. 널문자는 문자 '0'이 아니라 값이 0이므로 '\'뒤에 '0'을 붙여준 겁니다. 만약에 "Hello!"라는 문자열을 사용한다고 합시다. 그러면 아래와 같이 두가지 방법으로 정의를 할 수 있습니다. char hello_array[] = "Hello!"; char *hello_pointer = "Hello!"; 첫번째 정의는 크기를 지정하지 않은 문자형 배열에 "Hello!"를 지정한 겁니다. 두번째 정의는 hello_pointer라는 문자형 포인터가 "He.. 2020. 10. 28. C언어 공부하기 - 배열과 포인터 지난 시간에 포인터의 개념에 대해 간단히 살펴 보았습니다. 살짝 정리해 보면,, 포인터는 메모리의 주소를 저장하는 변수입니다. C언어에서 포인터를 선언할 때는 일반 변수를 선언하듯이 하면 되는데 변수 앞에 기호 Asterisk 즉 "*"를 붙여 주면 되고, 기본 자료형(문자형, 정수형, 실수형 등)의 주소를 포인터 변수에 넣을 때는 기본 자료형 변수앞에 Ampersand 즉 "&"를 붙여서 포인터 변수에 저장하면 됩니다. 지난 시간에 길게 포스팅한 내용은 아래 소스로 정리할 수 있습니다. // 정수형 변수 선언 int ival = 3; // 정수형 변수를 가리키는 포인터 선언 int *iptr; // 정수형 변수의 주소를 포인터 변수에 assign iptr = &ival; // 결과 출력 printf (.. 2020. 10. 15. C언어 공부하기 - 포인터를 알아보자 C언어를 공부할 때 많은 사람들이 다른 언어로 갈아타는 단계가 포인터에 대한 개념에서 입니다. 그만큼 내용 이해가 어렵지만 포인터를 빼놓고 C언어 프로그램을 작성하는 것은 모래위에 집을 짓는 것보다 더 위험한 것일 겁니다. 처음 듣는 어려운 개념을 가장 빠르게 배우는 방법은 무엇일까요? 당연히 자주 써보는 겁니다. 포인터를 이해하려고 개념을 책으로만 공부하다보면 이책 저책 같은 개념을 다른 방식으로 설명을 해 놓아서 더욱 더 미궁으로 빠지기 쉽습니다. 포인터도 마찬가지입니다. 일단 몇가지 개념을 공부한 다음에 코딩을 해보면서 당연하게 여기게 될때까지 하다보면 자연스럽게 이해가 됩니다. 포인터? 도대체 너 누구니? 포인터(Pointer)는 간단히 말해 메모리 주소(Memory Address)를 저장하는 변.. 2020. 10. 7. C언어 공부하기 - 다차원 배열 다차원 배열(Multi-dimensional Array)은 배열의 배열(array of arrays)라고도 불립니다. 다차원 배열을 정의는 배열의 정의에서 본 것처럼 대괄호([배열의 크기])를 연속적으로 추가해주면 됩니다. C언어에서 배열의 차원 수의 제한이 있는 것 같지는 않지만 3차원배열 이상으로 정의하여 코딩을 하다보면 머리가 깨질 정도로 헷갈리고 실수할 가능성도 매우 높아집니다. 앞선 포스팅에서 어떤 반의 성적을 일차원 배열로 어떻게 사용하는 지 알아봤는데요, 만약에 반이 2개라면 2차원 배열로 다음과 같이 정의하고 초기화할 수 있습니다. 아래 예제는 두개의 반 성적을 2차원 배열로 정의하고 초기화 한 것입니다. score[2][5]를 간단하게 2행 5열인 행렬이라고 생각하면 쉽습니다. 앞의 [2.. 2020. 10. 6. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음