목록프로그래밍 언어 (70)
알버트의 개발하는 블로그
이번 시간에는 우리가 c에서 클래스를 생성했을 때 자동으로 함께 생성되는 생성자 함수에 대해서 자세히 살펴보겠습니다. 생성자 함수란? 생성자 함수는 말 그대로, 클래스가 생성됐을 때 함께 '생성'되는 함수입니다. 저번 시간에 클래스를 선언할 때 이렇게 선언된다고 하였는데요. class 클래스명 { [접근 권한 지정자:] //생략 가능, 생략시 private이 기본 접근 권한으로 사용된다. 클래스 멤버 변수 선언;...; [접근 권한 지정자:] [생성자 함수] 클래스 멤버 함수 선언... }; 이 구조에서 [생성자 함수]가 눈에 띄실 겁니다. 클래스를 생성할 때 자동으로 생성되는 생성자 함수는 주로 클래스변수들의 초기화에 많이 사용됩니다. 생성자 함수의 규칙 단, 생성자 함수를 쓸 때는 규칙이 있습니다. ..
이번 시간에는 c언어에서 제공하는 기능 중에 하나인 클래스(class)에 대해서 한번 배워보겠습니다. 클래스란? 클래스는 구조체처럼 다양한 변수를 포함할 수 있습니다. 하지만 클래스는, 구조체와는 다르게 함수도 포함할 수 있습니다. 구조체는 단지 그 안에 자료형만을 포함하고 있었습니다. 하지만 클래스는 자료형을 포함할 뿐 아니라 그 안에 함수(메소드)까지 포함하고 있습니다. 클래스의 구조를 살펴보면, class 클래스명 { [접근 권한 지정자:] //생략 가능, 생략시 private이 기본 접근 권한으로 사용된다. 클래스 멤버 변수 선언;...; [접근 권한 지정자:] [생성자 함수] 클래스 멤버 함수 선언; ...}; 이와 같은 구조를 가지게 됩니다. 구조체랑 비교해보면 struct 구조체명 { 구조체..
이번 시간에는 좀 간단한 프로그램을 코딩해보겠습니다. 제가 자주 이용하는 '코딩도장'(http://codingdojang.com/)이라는 사이트에서 가져온 문제인데요. 원하는 숫자의 개수만큼 숫자를 입력하고 그 숫자들의 평균을 구해주는 프로그램입니다. 먼저, 원하는 숫자의 개수만큼 숫자를 입력하려면 메모리 동적 할당을 통해서 숫자만큼의 배열을 생성해주어야 할 것입니다. 코딩과 실행 결과 대표사진 삭제 사진 설명을 입력하세요. 코딩을 해보면 이와 같습니다. 숫자의 개수를 받는 변수 n, 합을 저장할 변수 sum, 평균을 저장할 변수 average가 선언합니다. scanf를 통해서 n의 값을 입력받습니다. 그리고 나서 이 부분이 이 코딩의 핵심이라고 볼 수 있습니다. 바로 int *array = new in..
이번 시간에는 c언어에서 제공하고 있는 구조체와 구조체의 변수에 대해서 간단히 배워보겠습니다. 구조체란? 우리가 프로그램에서 실제 처리할 데이터는 대부분 하나의 자료형으로 구성되지 않습니다. 여러 가지 자료형으로 자료를 받아야 하는 경우가 많이 있는데요. 구조체란 이처럼 여러 자료형을 받기 위해서 만들어진 하나의 자료형이라고 보시면 됩니다. 즉, 구조체란 여러 자료형을 묶어서 프로그램에서 사용할 새로운 자료형을 만드는 것을 말합니다. 사용자가 정의해서 쓰기 때문에 사용자 정의 자료형이라고도 부릅니다. 구조체를 선언하는 방법은 struct 구조체이름{ 구조체 멤버 변수(필드); ...; }; 이렇게 선언해주시면 하나의 구조체를 만들 수 있습니다. 구조체이름의 첫글자는 보통 대문자로 선언해주는게 관례입니다...
이번 시간에는 C언어에서 많이 쓰이고 있는 포인터에 대해서 배워보겠습니다. 우리가 변수를 선언했을 때, 이 변수는 컴퓨터의 메모리에서 어떤 공간을 차지하게 됩니다. 그리고 이 공간이 어디에 있는지를 알려주는 것이 바로 포인터라고 생각하시면 됩니다. 포인터란? 포인터란 변수나 배열이 메모리에 생성된 주소를 말합니다. 그리고 포인터 변수는 값(상수)을 기억하지 않고 포인터를 기억합니다. 컴파일러에게 포인터 변수임을 알려주기 위해 변수명의 앞에 '*'을 붙여야 합니다. 포인터 변수 선언시 붙여주는 자료형은 포인터 변수에 저장할 변수나 배열의 자료형을 따라서 적어주면 됩니다. 그리고 또 한가지 흥미로운 점은, 선언시 붙여주는 자료형에 상관없이 포인터 변수는 무조건 4바이트의 크기를 가진다는 것입니다. 이제 간단..
이번 시간에는 메모리 동적 할당을 이용해서 이차원 배열을 만들고 출력해보겠습니다. 예전에 메모리 동적 할당을 이용해서 일차원 배열 만들고 출력하기는 해보았는데요. 이번에는 약간 복잡한 이차원 배열입니다. 하지만 막상 코딩해보면 그다지 어렵지는 않습니다. 일차원 배열 동적 할당은 C는 자료형 *배열이름 = (자료형 *)malloc(sizeof(자료형) * 메모리크기) C++에서는 자료형 *배열이름 = new 자료형[메모리크기] 로 사용했었습니다. 이차원 배열은 이 문법이 거의 그대로 사용되지만, *이 하나 더 붙습니다. 코딩과 실행 결과 한번 코딩해보겠습니다. 먼저 c언어 문법입니다. 대표사진 삭제 사진 설명을 입력하세요. c에서는, 자료형 **배열이름 = (자료형 **)malloc(sizeof(자료형) ..
이번 시간에는 좀 간단한 코딩을 해보겠습니다. 자연수를 입력받아서 그 수의 약수를 모두 찾아내고, 그 약수들의 개수를 구해주는 프로그램입니다. 일단 자연수를 입력받기 위한 변수가 필요하겠죠? 그리고 맨 마지막에 약수들의 개수를 출력해주기 위해서 약수들의 개수를 저장해주는 변수가 필요할 것입니다. 따라서 이번 프로그램에서 필요한 변수는 딱 2개면 됩니다. 꽤 간단해 보이죠? 간단하게 코딩해보겠습니다. 코딩과 실행 결과 대표사진 삭제 사진 설명을 입력하세요. 코딩을 해보면 이와 같습니다. 메인 함수의 상단에 먼저 변수를 선언해줍니다. N은 자연수를 입력받기 위한 변수이고, count는 말그대로 약수의 개수를 세기 위한 변수입니다. 그리고 scanf를 통해서 n의 값을 입력받아 줍니다. 그리고 나서 for문만..
이번 시간에는 이차원 배열에 대해서 한번 배워보도록 하겠습니다. 예전에 배열에 대해서 간단하게 알려드렸었는데 그 배열은 우리가 일반적으로 많이 쓰는 일차원 배열이였습니다. 그리고 이번에는 이차원 배열에 대해서 한번 알아보겠습니다. 이차원배열이란? 이차원배열이란, 일차원 배열들이 모인 집합입니다. 예를 들어볼까요? 많은 사람들이 함께 사는 아파트를 예로 들어보면, 각각의 호수가 변수가 됩니다. 그리고 이 호수들이 함께 사는 아파트 한동이 바로 일차원 배열이 되는 것입니다. 그리고 아파트들이 모인 한단지가 이차원 배열이 되는 것입니다. 5개의 원소들을 갖는 4개의 배열이 모여있다고 생각해보면, 총 20개의 변수를 저장할 수 있게 됩니다. 이차원배열 예제 이제 바로 간단한 프로그래밍을 해보도록 하겠습니다. 이..