반응형

프로그래밍 언어/C언어 22

C언어 11. 포인터

이번 글에서는 포인터에 대해서 알아보도록 하겠습니다. 포인터는 C언어의 가장 특징적인 부분이자 C언어가 지금까지 이토록 사랑받는 이유 중 하나입니다. 그만큼 C언어 내에서 포인터가 가지는 비중은 매우 큽니다. 이러한 강력한 무기인만큼 포인터를 제대로 이해하고 사용하기란 그리 쉽지 않습니다. 제가 C언어를 처음 배울 때에도 주위의 많은 사람들이 어려움을 호소했고, 저 또한 마찬가지였습니다. 하지만 그만큼 이를 제대로 익혔을 때의 활용도와 성취감은 이루 말할 수 없습니다. 그럼 이제 포인터에 대해서 설명해보도록 할 텐데, 아주 적절한 예가 있어서 인용해보겠습니다. 데이터의 실제주소는 어디일까? 서울아파트 103호에 길동이가 산다고 가정해보도록 합시다. (서울 아파트에는 길동이라는 사람은 단 한 명입니다.) ..

C언어 10. 배열

이번 글에선 C언어에서 사용하는 배열에 대해서 알아보도록 하겠습니다. 배열이란 무엇일까? 먼저 배열이란 특정한 자료형을 연속적으로 나열하는것을 이야기합니다. 여러분이 만약 숫자 5개를 저장하기위한 int형 변수를 선언하려면 어떻게 해야 할까요? #include int main() { int num1, num2, num3, num4, num5; return 0; } 겨우 변수 5개 이기 때문에 별로 어렵지는 않습니다. 하지만 이것이 숫자 500개라면 어떻게 할까요? 그런 때조차 이렇게 코드를 작성해야 한다면 굉장히 불편하고 귀찮을 것입니다. 이런 코드를 배열을 사용해 코딩하면 매우 쉽게 할 수 있습니다. 먼저 배열의 기본적인 선언 방법부터 알아보도록 하겠습니다. 자료형 배열명[배열크기]; 위와 같이 사용하..

C언어 9. 사용자 정의 함수

저번 글에서 보여드린 계산기 프로그램은 다들 만들어보셨나요? 아마 별 어려움 없이 만드실 수 있었을 거라고 생각됩니다. 이번 글에서는 사용자 정의 함수에 대해서 알아보도록 하겠습니다. 함수란 무엇일까? 그러기에 앞서서 먼저 함수라는 건 무엇일까요? 함수는 영어로 function이라고 하며 특정한 작업을 수행하기 위해 만들어진 코드들의 집합,즉 작은 프로그램이라고도 볼 수 있습니다. 사실 지금까지도 우리는 많은 함수를 사용해왔는데요, printf, scanf, for, if등등이 모두 C언어에서 미리 만들어놓은 함수입니다. 이들을 라이브러리 함수라고 부르며, 우리는 지금까지 그것을 가져와 사용한 것입니다. C언어에서 사용되는 표준 라이브러리 함수는 아래의 링크에서 확인하실 수 있습니다. https://ww..

C언어 8. 계산기 프로그램

이번 글에선 입출력, 조건문, 반복문을 사용한 간단한 계산기 프로그램을 만들어보도록 하겠습니다. 코드를 보고 따라하기 전에 자신이 먼저 만들어보는 것도 나쁘지 않으니 해보시길 바랍니다. #include int main() { char op, ex = 'n';//연산자 int num1, num2;//입력받을 숫자 printf("계산기 프로그램 시작\n"); while (ex == 'n') { printf("수식을 입력해주세요. : "); scanf("%d %c %d", &num1, &op, &num2); getchar(); if (op == '+') { printf("%d %c %d = %d", num1, op, num2, num1 + num2); } else if (op == '-') { printf("..

C언어 7. 반복문

저번 글에서는 조건문에 대해서 알아봤는데, 이번에는 반복문에 대해 알아보도록 하겠습니다. 반복문의 필요성 반복문은 조건문과 마찬가지로 프로그래밍 내에서 아주 중요한 역할을 합니다. 만약 여러분이 숫자를 5번 반복해서 출력해야 된다면 어떻게 해야 할까요? 간단히 생각하면 다음과 같이 할 수 있겠죠. #include int main() { printf("5 "); printf("5 "); printf("5 "); printf("5 "); printf("5 "); } 나쁘지 않은 방법이고, 이렇게 해도 충분히 해결할 수 있는 문제입니다. 그런데 숫자를 100번 출력해야 한다면 어떻게 할까요? 사실 이 정도까지는 복사 붙여넣기를 통해서 쉽게 해결할 수는 있습니다. 하지만 그것이 천 번, 만 번, 1억 번이 된다..

C언어 6. 조건문

이번 글에서는 C언어에서 사용하는 조건문에 대해서 알아보겠습니다. 조건문이란? 조건문은 프래그래머가 조건을 정해서 그에 맞게 코드를 실행시킬 수 있도록 해줍니다. 조건문은 프로그래밍에 있어서 절대로 빠지면 안 되는 요소인데, 왜냐면 조건문이 없다면 프로그램은 언제나 같은 결과만을 반복하게 되기 때문에 사용자의 조작에 따라 능동적으로 동작하는 프로그램을 만들 수 없기 때문이죠. 그러면 이런 중요한 조건문을 사용하는 방법에는 어떤 것들이 있을까요? C언어에서는 if문과 switch문 두 가지를 사용합니다. if문 먼저 if문부터 소개하겠습니다. if문의 기본적인 문법은 다음과 같습니다. if (조건) { 실행할 코드 } else { 실행할 코드 } 위에서 보시면 if뒤의 소괄호 안의 조건이 True이면 그 ..

C언어 5. 입출력

저번 글 까지는 데이터들을 어떻게 저장하고, 그 데이터들간에 연산을 어떻게 하는지에 대해 알아봤습니다. 그러면 이제 실제로 사용자가 프로그램에 값을 입력하고, 값을 눈으로 볼 수 있도록 출력해봅시다. 사실 출력은 지금까지도 계속 사용했었는데, 이번에 자세하게 설명하도록 하겠습니다. 먼저 C언어에서 가장 많이 사용되는 출력 함수는 printf입니다. 여기서 함수란 말이 생소하실 수도 있는데, 어떤 특정한 작업을 수행하는 명령어의 집합이라고 생각하시면 될 것 같습니다. printf로 출력하자 printf의 사용법은 아주 간단한데, 어떤 값을 출력시킬지에 따라 조금씩 차이가 있습니다. 먼저 기본적인 방법은 printf("출력할 내용"); 과 같이 쓰시면 ""안에 입력하신 내용이 화면에 출력됩니다. 또한 여러분..

C언어 4. 연산자

지금까지는 C언어 내에서 데이터들을 저장하는 법을 알아보았습니다. 이번 글에서는 그 데이터를 가지고 실제로 계산을 하는 연산자들에 대해서 알아보겠습니다. 먼저 연산은 피연산자와, 연산자로 구성된다는 사실을 알고 계실 겁니다. 예를 들어 수식 2 + 3 * 10이 있다고 하면, 2, 3, 10은 피연산자 +, *는 연산자라고 합니다. 연산자의 종류 C언어에는 많은 연산자가 존재하고 있는데, 표를 통해 먼저 보고 이후에 설명하도록 하겠습니다. 먼저 산술 연산자에 대해서 알아봅시다. 이는 우리들이 초등학교 때부터 배워온 사칙연산에 사용하는 연산자들이 포함되어 있습니다. 그런데 이중 % 라는 연산자가 생소하신 분이 있을 수도 있는데, 이 연산자는 modulo연산을 수행합니다. modulo연산은 나눗셈을 실행하고..

C언어 3. 자료형

이번 글에서는 자료형이라는 것에 대해서 알아보도록 하겠습니다. 자료형은 저번 글에서 변수를 설명할 때 잠깐 언급했었습니다. 먼저, 변수와 상수는 데이터를 담는 상자라고 설명했던 것 기억하시나요? 상자의 모양을 지정해주자 자료형은 이 상자들의 구체적인 모양을 정해주시는 거라고 생각하시면 됩니다. 무언가 물건을 담으려면 그 물건에 맞는 용기를 찾아서 넣어야겠죠? 예를 들어 물을 종이박스에 담을 순 없습니다. 상자는 다 젖고, 물은 다 흐를 테니 말이죠. 이처럼 프로그램 내에서도상자의 형태들을 데이터에 맞게 명확하게 지시해주어야 합니다. 이런 자료형들은 언어들마다 조금씩 차이는 있지만 기본적인 구조는 비슷합니다. 먼저, 자료형은 정수형과 실수형으로 나뉩니다. 그리고 이 두 가지에서 다시 크기에 따라서 여러 종..

C언어 2. 변수, 상수

이번에는 C언어에서 사용되는 변수와 상수에 대해 알아보겠습니다. 변수? 상수? 먼저, 프로그래밍 언어에는 변수와 상수라는 것이 존재합니다. 이름만 들어보면 매우 비슷해 보이지 않나요? 하지만 둘 사이에는 분명한 차이가 있는데, 그것은 바로 데이터를 변경할 수 있냐 없냐입니다. 변수와 상수의 경우엔 데이터를 담아두는 상자라고 빗대어 말할 수 있을 것입니다. 변수의 경우 이 상자를 언제든지 열어서 내용물을 바꿀 수 있을 것입니다. 하지만 반대로 상수의 경우에는 한번 물건을 넣고 닫으면, 다시는 내용물을 바꿀 수 없습니다. 이러한 두 종류의 공간을 사용하는 이유는 매우 간단합니다. 프로그램에선 코드에 따라서 바꾸어야 하거나, 바꿀 수도 있는 데이터가 있고 한번 정하면 바꿀 필요가 없거나, 바꾸어선 안 되는 데..

반응형