본문 바로가기

전체 글

(C/C++ 속성 정리) 20일 차 : 레퍼런스 변수의 사용 안녕하세요 넬다이입니다. 오늘의 정리는 레퍼런스에 대해서 정리를 해보도록 하겠습니다. 오늘도 이렇게 봐주시는 여러분들께 감사드리고 정리를 시작해보겠습니다 레퍼런스 변수 레퍼런스 변수는 이미 선언된 변수를 다른 이름으로 부르는 것을 말하며, 레퍼런스 변수를 선언할 때 반드시 어떠한 변수를 부를지를 명시를 해야만 한다. int iA = 10; int iB = 20; int* p = &iA; p = &iB; 이것은 포인터 변수이다. 포인터 변수는 주소 값의 변경이 가능하며 이 뜻은 가리키는 위치에 변경이 가능하다는 뜻입니다. int iA = 10; int iB = 20; int* p = &iA; p = &iB; //레퍼런스 변수는 선언과 동시에 초기화를 해주어야 한다. int& rTest = iA; cout 더보기
(C/C++ 속성 정리) 19일 차 : 재귀 함수 및 2차원 배열 안녕하세요 넬다이 입니다. 오늘 정리할 내용은 재귀 함수 및 2차원 배열입니다. 오늘 내용은 별다르게 어려운 내용은 없으니 너무 긴장 마시고 파이팅해주세요~ 재귀 함수 recursive call 이라고도 불리며 재귀 함수는 코드의 양을 줄일 수 있다는 장점이 있다. 하지만 코드를 파악하기가 어렵고 디버깅이 힘들고 재귀 함수는 반복문보다 속도가 느리다. stack 영역의 메모리가 낭비가 되는데 왜냐하면 마지막 call 이 끝나기 전까지 계속해서 메모리를 할당하고 있기 때문이다. 기본적으로 재귀 함수는 무한이라는 개념이 있기 때문에 사람들이 봤을 때는 직관적이지 않는 단점도 있다. 자 그러면 재귀 함수와 반복문을 코드로써 확인해보도록 하겠습니다 //재귀 함수 호출을 통한 팩토리얼 연산함수 int Factor.. 더보기
포함 파일을 열 수 없습니다. 'atlbase.h': No such file or directory 해결법 안녕하세요 넬다이입니다. 오늘의 이슈는 포함 파일을 열 수 없습니다. 'atlbase.h': No such file or directory입니다. 오늘 갑자기 예전 프로젝트가 궁금해서 접속을 해보는데 이런 에러가 뜨더라고요.. 당황 당황..... 그래서 왜 그런지 찾아보다가 이렇게 글을 쓰게 되었습니다. 혹여나 여러분들 중에 모르시는 분이 계실까 싶어서요.... 저도 찾는데 다 영어라서 진이 빠지더라고요..ㅠㅠ 자 이것에 해결법은 은근 간단합니다 atlbase는 atl이 있어야 되는데 17 버전부터는 설치를 직접 해줘야 한다는 사실!!! 두둥!! 자 그러면 어떻게 해야 되는지 천천히 짚고 넘어가 보도록 하겠습니다. 첫 번째 시작 -> visual studio installer 실행 실행을 하시게 되면은 .. 더보기
(C/C++ 속성 정리) 18일 차 : 리스트를 이용해서 성적표 만들기 및 설계 안녕하세요 넬다이입니다. 오늘은 18일 차로써 리스트를 이용해서 성적표를 만들어 볼 건데요 오늘 사용할 리스트는 더블 링크드 리스트를 활용해서 만들어 보겠습니다. 어려우시겠지만 조금만 더 힘 내주세요!!!!! 이해가 안 되면 몇 번이나 보고 그냥 외우시면은 어느 순간 이해가 될 날이 오실 거예요 ㅠㅠ 더블 링크드 리스트 더블 링크드 리스트는 각각의 노드(하나의 객체)가 자신의 뒤와 앞의 주소를 알고 있는 형태이다. 각각의 New를 하게 되면은 메모리 주소 어딘가에 생성이 되는데 각 노드들이 다음에 생성된 노드에 주소를 알고 생성된 노드는 뒤에 생성된 주소를 알고 있음에 있어서 배열과 다르게 메모리 공간이 연속되어 있지 않고 떨어져 있으므로, 추가 생성 및 제거가 비용이 적다. 더블 링크드 리스트는 추가 .. 더보기
(C/C++ 속성 정리) 17일 차 : 성적표 만들기 및 설계 안녕하세요 넬다이입니다. 오늘은 이제껏 배웠던 내용들로 성적표를 만들어 보도록 하겠습니다. 지난 16일 차에도 말씀드렸듯이 오늘은 성적표를 만들고 이를 토대로 다음 시간에는 리스트도 한번 사용해볼 생각이에요 그러니깐 오늘은 준비운동이다 생각하시고 천천히 따라오시면 될 것 같습니다. 성적표 자 우리는 이번 시간에 성적표를 만들어 볼 생각입니다. 이를 통해서 우리는 코드 설계라는 것을 하게 되는데요 이건 그렇게 어렵게 생각할 필요 없이 어떻게 구현하면 될까를 미리 생각하고 정리하는 것이라고 생각하면 편합니다. 나중에는 더욱 어려워지겠지만요....ㅠㅠ 자 이번 과제의 문제는 이렇습니다 땡땡 학교에서 성적표 입출력하는 프로그램을 만들려고 합니다. 이 프로그램을 통해서 특정 학생의 이름을 검색할 때 입력이 되어있.. 더보기
(C/C++ 속성 정리) 16일 차 : 메모리 관련 함수 안녕하세요 넬다이입니다. 오늘은 16일 차로써 메모리 관련 함수들에 대해서 정리해보겠습니다. 메모리 관련 함수 메모리 관련 함수에는 여러 가지가 있다. 그중에서도 대표적으로 memset() , memcpy()에 대해서 보도록 하겠습니다 memset() 메모리를 초기화해주는 함수. 매개변수의 순서는 1. 초기화할 메모리 공간의 시작 주소 2. 설정할 데이터 3. 설정할 데이터 사이즈 #include using namespace std; typedef struct tagInfo { charszName[20]; intiKor; intiEng; intiMath; }INFO; void main(void) { INFO*pInfo = new INFO[5]; memset(pInfo, 0, sizeof(INFO) * 5.. 더보기
(C/C++ 속성 정리) 15일 차 : 포인터와 동적할당 안녕하세요 넬다이입니다. 오늘은 15일 차 정리입니다. 포인터와 동적 할당입니다. 다들 어려운 파트지만 파이팅해주시길 기원할게요. 포인터 변수 일반 변수는 값을 저장하기 위해서 사용했고 포인터 변수는 주소를 저장하기 위해서 사용한다. 자료형과 관계없이 4바이트의 크기를 가지며 증감 연산을 하게 되면 해당 자료형의 크기만큼 바이트 이동이 발생한다. 포인터 변수는 선언과 동시에 초기화해야 하며 즉시 값을 채우던지 아니면 NULL로 반드시 초기화 해야 한다. 초기화하지 않으면 위험의 소지가 굉장히 크다. 배열과 포인터의 상관관계를 잘 알고 있어야 합니다. 메모리 메모리는 Ram, hdd, cache, register 등을 말하며 이러한 메모리들을 합쳐서 가상 메모리라고 한다. 가상 메모리는 stack, hea.. 더보기
(C/C++ 속성 정리) 14일 차 : 함수의 사용방법 안녕하세요 넬다이입니다 오늘은 14일 차 정리시간이 되겠는데요 오늘 배워볼 내용은 함수의 사용입니다. 함수란 기능을 뜻하는데요 프로그램에 있는 기능 하나하나를 함수로써 구현을 하는 방법 이를 통해서 재사용성을 늘려주는데 오늘은 그 기본이 되는 함수에 대해서 배워보도록 하겠습니다. 함수란 함수는 어떤 기능을 수행하도록 만든다. 함수의 장점이라면 코드의 재사용성이 있다. 함수를 잘 구현을 한다면 여러 번 중복 정의할 필요 없이 코드 내의 중복되는 규칙이나 코드들을 줄일 수 있다. 컴파일러가 제공해주는 함수도 있고 우리가 직접 만드는 함수도 있다. 우리가 만드는 함수를 사용자 정의 함수라고 부른다. 함수를 사용하기 위해서는 함수의 원형과 정의를 제공해야 한다. 함수를 선언을 하고, 구현을 한다. 함수는 크게 .. 더보기