본문 바로가기

반응형

전자 공학/C언어 C++

(33)
[C++ 독학하기] 4. 참조자(Reference)의 개념 안녕하세요. 취업한 공대누나입니다. 오늘은 참조자의 개념에 대해서 소스 코드와 함께 간단히 알아보도록 하겠습니다. 1. 참조자(Reference)란? 참조형 변수라고도 합니다. 변수는 할당된 메모리 공간에 붙여진 이름입니다. 우리는 이 이름을 가지고 해당 메모리 공간에 접근할 수 있습니다. 참조자는 할당된 하나의 메모리 공간에 다른 이름을 붙이는 것을 말합니다. 쉽게 말하면 별명을 붙이는 것입니다. 참조자가 처음 어떤 변수와 짝을 이루게 되면 그 짝이 달라지거나 하지는 않습니다. 즉, 한번 초기화되고 나서는 다른 변수를 참조하는 것은 불가능합니다. 원래 변수를 이름이라고 하고 참조자를 별명이라고 하면 아래와 같은 형식을 갖게 됩니다. 형식 &별명 = 이름 그렇다면 예제를 통해 보도록 하겠습니다. 처음에 ..
[C++ 독학하기] 3. new와 delete 연산자에 대한 개념 안녕하세요. 취업한 공대누나입니다. 오늘은 new와 delete의 개념에 대해 공부해보도록 하겠습니다. 할당에 대한 개념을 먼저 잡고 들어가겠습니다. 1. 개념 new와 delete는 C++에서 객체를 동적 할당하고 해체하는 '연산자'입니다. C++에는 세 가집 타입의 메모리 할당이 있습니다. 1) 정적 메모리 할당(static memory allocation)은 정적 변수와 전역변수에 대해 발생하는 것으로 프로그램이 실행될 때 한 번 할당되며, 프로그램 수명 내내 지속하게 됩니다. 2) 자동 메모리 할당(auto memory allocation)은 함수 매개변수와 지역 변수에 대해 발생하는 것으로 이러한 타입의 변수에 대한 메모리는 관련 블록을 입력할 때 할당되고, 블록을 종료할 때 필요에 따라 여러 ..
[C++ 독학하기] 2. 인스턴스 개념, cout, cin 안녕하세요. 취업한 공대누나입니다. C++ 복습을 다시 시작하니 학부생이 된 것 같은 느낌입니다. 다시 돌아간다면 지금은 다른 걸 공부하고 있을텐데 아쉬움도 많이 남습니다. 하지만 지금이라도 공부를 시작하는 건 좋은 것이니까요 시작해보도록 하겠습니다. 1. 인스턴스란? C++을 접하게 되면 인스턴스라는 말을 많이 듣게 됩니다. C언어에서의 변수와 같은 개념이라고 생각하시면 됩니다. 다음과 같이 있으면 number는 int자료형에 대한 인스턴스이고 test는 double 자료형에 대한 인스턴스인 것입니다. 객체지향 프로그래밍에서는 모든 것을 객체로 표현하고 객체의 형식을 갖는 변수를 인스턴스라고 부릅니다. 즉 지난 시간에 배운 cout 객체는 iostream 이라는 클래스의 인스턴스라고 할 수 있습니다. ..
[C++ 독학하기] 1. std, namespace, cout의 개념 안녕하세요. 취업한 공대누나입니다. C언어나 C++나 처음 책을 펴게 되면 또는 처음 공부하게 되면 대게 Hello World!를 출력하는 예제를 접합니다. C언어에서는 printf() 함수를 이용해서 Hello World를 출력했던 것을 다들 알고계시겠지요? C++는 출력해주는 부분이 이와 다릅니다. 한 번 자세히 보도록 하겠습니다. 1. Hello World 출력하기 Hello World 출력 (1) std std(클래스)에는 cout, cin, endl를 포함하여 자주 사용되는 함수들이 정의되어 있습니다. (처음 하시는 분들은 cout이라는 것이 뭐지 할 수 있는데 C언어의 printf와 같이 C++에서는 콘솔 출력을 담당합니다.) 즉 표준라이브러리에 있는 변수 또는 함수들은 std 네임스페이스에 ..
[C++ 독학하기] 0. 파일 소스을(를) 열 수 없습니다. "stdafx.h" 안녕하세요. 취업한 공대누나입니다. 오늘부터 본격적으로 C++에 대한 기초 공부를 진행해보려고 합니다. 다시 한 번 책을 훑어보았는데 제가 모르는 내용이 정말 많았습니다. C++은 학부생 때 평소 수업시간에는 실습을 하고 시험은 보통 이론이었기 때문에 내용이나 개념 자체는 익숙할 법도 하다고 생각했는데 전혀 익숙하지 않더군요. 특히 회사에서도 C++이 아닌 C를 주로 사용했기 때문에 개념이 아예 제 머릿속에서 사라졌나 봅니다. 천천히 공부해보도록 하겠습니다. 아주 간단한 소스 코드를 돌려보려고 했는데 다음과 같은 에러가 발생했습니다. 1. 에러 발생 파일 소스을(를) 열 수 없습니다. "stdafx.h" 포함 파일을 열 수 없습니다. "stdafx.h" : No such file or directory ..
C언어와 C++의 차이점 (절차지향과 객체지향) 안녕하세요. 취업한 공대누나입니다. MFC를 공부하던 중 C++에 대한 개념이 너무 취약하다는 것을 깨닫고 C++에 대한 공부를 하고 MFC를 다시 공부해자라는 생각이 들었습니다. C++는 C언어의 발전된 형태라고 할 수 있기 때문에 두 언어는 비슷한 면이 굉장히 많습니다. 1. C언어는 절차지향(Procedural) C++는 객체지향(Multi Paradigm) 대부분의 책, 혹은 사람들이 가장 먼저 말하는 차이점은 이것이 아닐까 싶습니다. 그렇다면 절차지향과 객체지향의 개념에 대해서 알아보고 넘어가보겠습니다. 절차지향 C언어는 절차지향 언어입니다. 즉 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만듭니다. 객체지향 언어보다 더 빨리 처리되어 시간적으로 유리한 측면이 있습니다. 그리..
[C언어 독학하기] 21. 파일 입출력, puts fgetc, fputc 안녕하세요. 취업한 공대누나입니다. 오늘은 지난 시간에 이어서 파일 입출력을 보도록 하겠습니다. 지난 포스팅에서는 파일 읽기에 대해 다뤘고, 오늘은 텍스트 파일을 작성해 보도록 하겠습니다. 그 전에 우선 파일 입출력은 왜 필요한 걸까요? 우리는 프로그램을 작성하고 나서 실행 중에 데이터가 생기면 메모리에 보관해서 사용하였습니다. 하지만 메모리에 저장된 데이터는 프로그램 실행이 종료가 되면 사라지게 됩니다. 하지만 이러한 데이터를 사용해야 할 수가 있습니다. 장비의 정보에 대한 기록을 남겨야 하기도 하고 어느 곳에서 오류가 났는지 파악할 때 기록을 남겨 놓을 수도 있기 때문입니다. 그럼 텍스트 파일을 작성하는 것을 하기 전에 간단하게 몇 개의 함수를 소개해 드리고 시작하겠습니다. 1. 텍스트 파일 작성하기..
[C언어 독학하기] 20. 파일 입출력 (fopen_s) 안녕하세요. 취업한 공대누나입니다. 오늘은 파일 입출력에 대한 이야기를 해보도록 하겠습니다. 1. 파일의 종류 크게 텍스트 파일과 바이너리 파일로 나눌 수 있습니다. 사람이 읽을 수 있느냐 없느냐로 구분되는데, 사람이 알 수 있는 규칙을 통해 기록된 파일, 즉 문자로서 우리가 읽을 수 있는 파일을 텍스트 파일이라고 하고, 의미를 알 수 없는 데이터들이 나열된 것을 우리는 바이너리 파일이라고 합니다. 2. 파일을 다루는 순서 1) 대상 파일을 엽니다. 2) 파일 포인터를 이용해서 우리가 원하는 목적에 맞춰 파일을 읽고 씁니다. 3) 조작이 끝나고 파일을 닫아줍니다. 간단하게 감을 익히기 위해 먼저 대략적인 흐름을 기술해보도록 하겠습니다. FILE *fp; -> 파일포인터 fp를 선언하였습니다. fp = f..

반응형