본문 바로가기

분류 전체보기58

[C언어와 함께 자료구조를] 문자열과 배열 이름, 단어, 문장 등을 저장하기 위해서는 문자열을 사용합니다. C언어에서 문자열은 문자의 배열입니다. 최대 10개의 문자를 가지는 문자열 str은 다음과 같이 선언합니다. char str[10]; C언어의 배열은 인덱스가 0부터 시작하므로 문자열 str의 첫번째 문자는 s[0], 마지막 문자는 s[9]가 됩니다. 예를 들어 문자열 str에 "Hi"를 저장하려면, 배열 str의 처음 두개의 위치에 문자를 저장하고, 이 두개의 문자만이 유효하다는 표시를 해야 합니다. C언어에서 문자열의 마지막 문자 다음에 Null 문자로 문자의 마지막을 표시합니다. 아래의 예에서 Null문자는 '\0'을 사용했는데요, 이는 문자 '0'이 아닌 Null (아무것도 안들어 있다. 즉 코드값은 0x00) 문자를 의미합니다. s.. 2015. 3. 10.
[C언어와 함께 자료구조를] 포인터 활용 포인터를 이용한 값 교환 두개의 정수 변수의 값을 교환하는 함수를 생각해 보죠. 그냥 소스를 먼저 보겠습니다. void intswap (int a, int b) { int t; t = a; a = b; b = t; } void main () { int x, y; x = 1; y = 2; printf ("변경 전 : x=%d y=%d\n", x, y); intswap (x, y); printf ("변경 후 : x=%d y=%d\n", x, y); } 자... 그럼 출력은? 변경 전 : 1 2 변경 후 : 1 2 이런 결과가 나오는 이유는 C언어에서 인수를 함수에 전달할 때, 인수 자체를 전달하지 않고 인수의 복사(copy)본을 전달하기 때문입니다. 이런 방법을 값에 의한 호출(call by value) 라.. 2015. 3. 10.
[C언어와 함께 자료구조를] 변수와 포인터 여러가지 자료구조 모델에 대해 공부하기 전에 3~4회에 걸쳐서 변수와 포인터, 배열 및 문자열 그리고 구조체, 동적기억 할당에 대해서 공부해 보도록 합시다. 변수와 포인터 변수와 포인터를 정확히 알려면 메모리 모델을 살펴봐야 합니다. 여기서는 개념적인 면이 없지 않고, C언어에 국한되기는 하지만 이해하기에 무리는 없다고 생각합니다. [그림1]은 0부터 번호가 부여된 크기가 같은 셀로 구성된 커다란 배열로 볼 수 있습니다. 각 셀은 하나의 문자를 저장할 공간을 가지며, 번호는 배열의 인덱스로 셀의 주소라고 할 수 있습니다. 하나의 셀에는 하나의 char변수를 저장할 수 있으므로, 주소 i번째 저장된 변수는 i번째 주소로로 확인 할 수가 있습니다. 만약에 셀보다 큰 용량의 변수를 지정한다면, 연속된 메모리 .. 2015. 3. 9.
[C언어와 함께 자료구조를] 입문 – 자료구조가 뭐지? 자료구조 왜케 어려워? 우리가 자료구조 (Data structure)와 알고리즘 (Algorithm)을 공부하는 이유는 무엇일까요? 이번 학기 수강할 과목이기 때문이기도하고, 프로그램 언어를 공부하는데 꼭 필요하다는 선배들의 말 때문이기도 합니다. 조금 사무적으로 말을 하자면, 실제 업무를 효율적으로 수행하는 프로그램을 만들고 수행하는데 있다고도 말합니다. 그렇다면, 우리는 정말 위와 같은 이유때문에 그....어려운 학문(?) 을 공부한다는 건 의지박약인 저같은 사람들에게는 전산은 내 적성이 아니구나라는 생각밖에 들지 않을 겁니다. 물론, No pain, no gain! 이라는 말이 있듯이, 쉽게 얻어지는 일은 없습니다만, 내가 중고등학교때처럼, 미분이니 적분이니 어디 써야할지 모르고 공부하는것 보다는 .. 2015. 3. 9.