목록언어/C++ 스터디 (5)
이것저것 공부기록

참조가 등장한 이유 C와 달리 C++에서 '참조'라는 개념이 왜 생겼는지 궁금해져서 그것부터 찾아보았다. 레퍼런스는 포인터를 잘못 사용해서 생기는 수많은 재앙과도 같은 문제들을 최소화하기 등장했다. (https://gracefulprograming.tistory.com/11) 작성자분의 개인적인 견해일수도 있지만, 나중에 도움이 될 수도 있을 것 같아 첨부해놓는다. (NULL 허용 여부가 프로그램 설계에 어떤 영향을 미치는지 등 아직 모르는 부분이 많다.) 포인터와 참조의 차이점 1. 참조자는 선언과 동시에 초기화해야 한다. 포인터는 선언 후 나중에 값을 할당해도 되지만, 참조자는 반드시 선언과 동시에 초기화해야 한다. 이는 NULL 값의 할당 가능 여부와도 관련이 있다. 널 포인터는 말 그대로 NULL..

하노이 탑이란, 하나의 축에 크기가 각기 다른 원반이 쌓여 있고, 제3의 축을 이용하여 작은 원반 위에 큰 원반이 놓여지지 않도록 하면서 한 번에 한 장씩 움직여 다른 축으로 원반의 이름을 이동시키는 퍼즐의 이름이다. (컴퓨터인터넷IT용어대사전) 1. 첫번째 줄에 장대에 쌓을 원판의 개수(N)을 입력한다. (1

메모리의 구조와 주소 정수형 변수(int)의 크기 : 4byte 메모리에 정수형 변수 a를 선언하면 임의의 위치에 4byte 자리잡음 변수가 위치하는 곳 : 주소(address) 변수의 주소를 알려면 변수 앞에 '&'를 붙임 ex) a의 주소(&a) = 1036번지, b의 주소 = 1040번지 포인터(pointer)란? 메모리의 주소값을 저장하는 그릇(변수)이며, 포인터 변수라고도 부른다. 포인터를 이용하면 메모리에 직접 접근 가능! -> 따라서 더 많은 주의가 필요함 포인터를 사용하는 이유 · 메모리 공간을 효율적으로 사용할 수 있다. · 복잡한 자료 구조(배열, 구조체 등)와 함수에 쉽게 접근할 수 있다. · 메모리 동적 할당(컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것 ↔..
#include using namespace std; int main() { int menu, num; // 번호 선택 변수, 행 개수 변수 int i, j, k; // for문에서 사용할 변수 do // 메뉴 창을 먼저 출력해야하기 때문에 do~while 문 사용 { cout

1. C vs C++ C++은 기존의 C언어에 여러 가지 기능을 추가하여 만든 프로그래밍 언어이다. C언어를 기초로 삼아 만들었기 때문에 C언어의 표준 라이브러리를 그대로 가져와서 쓸 수 있다. C언어는 절차식으로 작성하기 적합한 프로그래밍 언어로, 절차지향성 특징을 가진다. 즉 어떤 일을 진행할 때 순차적으로 진행한다. 반면에 C++은 객체 지향 프로그래밍(OOP, Object Oriented Programming)에 적합한 언어이다. 객체지향 프로그래밍이란, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법을 말한다. 2. C++의 특징 1) C언어와의 호환성 2) 객체 지향 개념 (캡슐화, 상속, 다형..