본문 바로가기

프로그래밍

[C언어] C언어 기초강좌 9 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌 에서는 포인터와 배열의 관계와 함수 포인터, 그리고 구조체에 대해서도 알아보겠습니다. 1. 배열이 이상하다? 배열을 사용하다가 보면 이상한 점을 많이 발견하셨을 겁니다. 예를 들어 scanf함수로 정수 변수에 어떤 정수를 입력 받을땐 int Var; scanf("%d",&Var); 이렇게 했죠? 그런데 문자배열에 문자열을 입력 받을땐 char Var[100]; scanf("%s",Var); 이렇게 했습니다. 왜 문자배열에 문자열을 입력 받을땐 scanf("%s",&Var); 이렇게 &를 붙이지 않았을까요? 그리고 함수에 값을 전달할때 배열을 전달하면 왜 Passing by reference로 전달 되었을까요? 정말 궁금하시지 않습니까? 이유는 배열명이 포인터이기 때문이죠. 그러니까 배열명은 배.. 더보기
[C언어] C언어 기초강좌 8 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌 에서는 포인터에 대해서 알아보도록 하겠습니다. 포인터는 C언어에서 정말로 중요하죠. C가 강력한 이유중 하나가 이 포인터 때문입니다. 대부분의 사람들이 C언어를 공부할때 바로 이 포인터를 가장 어렵게 생각합니다. 하지만 제가 생각하기엔 이 포인터는 그렇게 어려운 것이 아니라고 생각합니다. 어렵다는 생각을 갖지 마시고 포인터는 정말 쉬운 것이라는 생각을 갖고 이 강좌를 읽어 보시기 바랍니다. 1. 포인터가 도대체 무엇? 포인터의 정확한 이름은 '포인터형 변수' 입니다. 그냥 줄여서 포인터라고 하는 것이죠. 그럼 여기서 포인터는 변수라는걸 아셨겠죠? 변수에는 정수 형태, 장정수, 부동 소숫점 수, 문자 형태 등등이 있습니다. 그럼 포인터는 도대체 어떤 형태 일까요? 포인터는 바로 주소 형태 입니다.. 더보기
[C언어] C언어 기초강좌 7 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌에서는 C언어에서의 함수의 사용법에 대해서 알아보도록 하겠습니다. 1. 함수에 값 전달. 여러분이 어떤 함수를 만든다고 합시다. 그 함수는 printf와 같이 어떤 내용을 화면에 출력하는 함수이죠. 그런데 화면에 무언가를 출력하기 위해선 그 출력할 내용을 전달받아야 겠죠? 어떻게 하면 전달받을수 있을까요? 바로 그 방법에 대해서 자세히 알아보도록 하죠. 저번 2회때 함수에 대해 배울때 인수라는 것이 있었습니다. 그때 인수는 함수가 어떤 처리를 할때 필요해서 전달받을 데이터라고 했죠. 이 인수를 통해서 함수가 값을 전달받을수 있습니다. (1) 인수가 정확히? 인수에 대해 정확히 말하자면 함수에서 값을 전달받는데 쓰이는 변수를 말합니다. 즉 변수의 일종이죠. 아니 일종이 아니고 변수라고 생각하세요... 더보기
[C언어] C언어 기초강좌 6 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌에서는 프로그램 흐름제어에 대해 알아보겠습니다. 프로그램 흐름 제어란 실제 프로그램에서 가장 중요한 부분으로 어떤 조건이 만족될때 어떤 부분을 실행하거나 어떤 특정 부분을 반복하는 기능을 수행하도록 프로그램의 흐름을 제어하는 것을 말합니다. C에서는 프로그램 흐름 제어를 위해 많은 방법을 제공합니다. 그럼 그것들을 하나씩 알아보죠. 1. if문. 프로그램을 만들다 보면 어떤 조건이 만족되면 특정 부분을 실행하고 그렇지 않으면 또다른 특정 부분을 실행해야 하는 등의 구조가 필요할때가 있습니다. 이때는 if문을 사용하면 됨니다. if문은 어떤 조건이 만족 되면 특정 부분을 실행하는 기능을 합니다. 그럼 자세히 알아보죠. (1) C언어 에서 참과 거짓 if문을 배우기 전에 한가지 알아 둘 것이 있습니.. 더보기
[C언어] C언어 기초강좌 5 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌는 C언어의 연산자에 대해서 알아보도록 하겠습니다. 1. 연산자 이제부터는 좀 쉬운 것들을 배우도록 하죠 어렵지는 않지만 매우 중요한 것이니 잘 들으시길 바랍니다. 이제부터 배울껀 연산자 입니다. C언어는 키워드는 적어도 연산자 만큼은 그 그 어떤 언어보다도 많습니다. 그것이 C언어가 강력한 이유중 하나이죠. C에서 연산자는 매우 중요하므로 잘 들으셔야 할 부분입니다. (1) 기본 수학 연산자 우선 간단히 기본 수학 연산자를 하겠습니다. C를 모르는 그 어떤 사람이라도 다 아는 것이니 머리 식힐겸 잘 읽어보세요. 기본 수학 연산에는 덧셈, 뺄셈, 곱셈, 나눗셈이 있습니다. 이에 따른 연산자는 다음과 같습니다. ------------- + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지 -------.. 더보기
[C언어] C언어 기초강좌 4 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌에서는 입출력 함수인 printf, scanf를 배워 보겠습니다. 1. 입출력 함수 이제 입출력 함수 2가지를 배워 보죠. 화면에 입출력 하는 함수로 가장 많이 쓰이는 것이 printf함수와 scanf함수 입니다. 이것들에 대해 자세히 공부해 보도록 하죠. (1) 출력 함수 printf 화면 출력 함수중 가장 많이 쓰이는 printf함수를 배워 보겠습니다. 이 함수는 지금까지 예제 소스에 많이 나왔던 것 이지만 따로 배운적은 없습니다. 이제 그 printf함수에 대해 알아보죠. printf함수는 stdio.h라는 헤더 파일에 정의되어 있습니다. 그리고 사용법을 간단히 본다면 다음과 같죠 printf(포맷문자열[,인수,인수..]); 여기서 포맷 문자열이란 출력하는 형태를 지정하는 문자열이고 인수는.. 더보기
[C언어] C언어 기초강좌 3 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌 에서는 지역 변수와 전역 변수, 정적 변수 그리고 입출력 함수인 printf, scanf를 배워 보겠습니다. 1. 지역 변수 지역 변수란 어떤 한정되 지역 에서만 사용할수 있는 변수를 말합니다. 블럭 안에서 선언된 변수는 모두 지역 변수이고, 이때 이 블럭이라는 한정된 지역에서만 이 변수를 사용할수 있습니다. 그리고 지역 변수는 그 변수가 선언된 블럭이 끝나면 그 변수에 들어있는 값을 잃게 됨니다. 참고로 지역 변수를 선언할때는 블럭의 윗부분에 선언을 해야 합니다. 모든 작업 전에 선언해야 하죠. 그렇지 않으면 에러가 납니다. 예제 소스 하나를 보도록 하죠. /* 파일 이름 : C4-1.C 프로그램 내용 : 지역 변수를 설명하는 프로그램. */ void main() { int a; { int .. 더보기
[C언어] C언어 기초강좌 2 / C언어 / 프로그래밍 기초 / 프로그램 만들기 이번 강좌에서는 C프로그램에서의 데이터에 대해 알아보도록 하죠. 1. C언어에서의 데이터의 종류 C언어에서 데이터를 크게 분류하자면 수치 데이터와 문자 데이터로 분류할수 있습니다. 수치 데이터는 0, 1, 100, 200등의 정수와 1.0, 2.0등등의 소수가 있고, 문자 데이터에는 'A', 'B'등의 문자와, "ABCDEFG"등의 문자열이 있습니다. 그리고 데이터는 상수와 변수로도 구분할수 있습니다. 2. 변수 변수란 프로그램에서 변할수 있는 값을 말합니다. 정확히 말하지면 어떤 기억장소가 주어지는데 그 안의 값을 마음데로 바꿀수 있는 기억장소를 말합니다. 변수를 사용하기 위해선 반드시 변수를 선언해야 합니다. 즉 기억장소를 마련해야 쓸수 있는 것이죠 그럼 변수를 선언하는 방법에 대해 알아볼까요? 변수.. 더보기
[C언어] C언어 기초강좌 1 / C언어 / 프로그래밍 기초 / 프로그램 만들기 1. C언어 소개. C언어란 것은 아주 강력한 기능을 가진 프로그래밍 언어 입니다. C언어가 Unix운영체제 하에서 시스템 프로그래밍을 하기 위해 개발된 언어라는건 알고 있지만 정확히 누가 만들었는지는 저두 잘 모릅니다. 사실 그건 중요한게 아니죠. C언어는 구조화 프로그래밍을 지향하는 언어이고 정말로 가장 쓸모있는 언어라고 할수 있습니다. 이유는 C언어에서는 못하는게 없기 때문이죠. 좀 과장된 표현 같기도 하지만 다른 언어들과 비교해 볼때 못하는거란 없습니다. 그리고 C언어로 만든 프로그램의 속도는 어셈블리어 만큼이나 빠른 속도를 내기 때문에 빠른 속도를 요구하는 프로그램에도 적합하죠. 단 게임과 같은 곳에서는 C언어의 속도도 조차도 느리기 때문에.. 어셈블리가 요구되는 곳이 있지만, 요즘 C언어 컴파.. 더보기