3장
·
프로그래밍/씹어먹는 C++
메모리힙 할당 삭제할당은 new, 삭제는 deletenew로 할당한 공간만 delete로 삭제할 수 있고, 무리하게 삭제하려 하면 에러 int arr_size; int* list = new int[arr_size]; delete[] list;변수 사용시 컴파일러는 사용 위치에서 가까운 곳부터 탐색한다 for (int i = 0; i > list[i]; }for문 초기식에 선언된 변수는 for문 내부에 속한 것으로 간주, for문을 벗어나면 소멸→ for문 밖에서 i가 사용되어도 오류가 발생할 가능성이 낮음, for문에서는 카운터의 역할만 수행
2장
·
프로그래밍/씹어먹는 C++
레퍼런스C의 포인터와 다른 점참조자는 변수의 다른 이름, 참조자에게 하는 것은 변수에게 하는 것과 동일선언 시 어떤 변수의 참조자인지 반드시 정해줘야 한다다른 변수의 참조자가 될 수 없다메모리 공간에 존재하지 않을 수 있다레퍼런스의 배열과 배열의 레퍼런스레퍼런스의 배열은 언어상 금지배열을 선언하면 주소를 통해 접근할 수 있고 이는 메모리 공간이 할당된다는 뜻이기 때문특별한 경우가 아닌 이상 레퍼런스는 메모리 공간을 가질 수 없기 때문에 금지배열의 레퍼런스는 가능배열의 레퍼런스는 포인터와 달리 레퍼런스 선언시 배열의 크기가 정해져야 한다배열과 배열의 레퍼런스의 크기는 동일해야 한다댕글링 레퍼런스함수가 레퍼런스를 리턴하면서 변수는 소멸하고 레퍼런스만 남아있는 것을 말한다함수가 레퍼런스를 리턴하는 것은 함수 ..
1장
·
프로그래밍/씹어먹는 C++
namespace이름 공간, 함수가 포함되어 있는 특정 이름 공간같은 이름이더라도 소속된 이름 공간이 다르면 다른 것using namespace [namespace명];⚠️namespace 내의 모든 함수를 사용할 수 있지만 권장되는 방법은 아니다함수 생성 시 std 내 같은 이름의 함수가 있을 경우 충돌할 수 있기 때문다른 namespace 안에서도 namespace를 명시해주면 자유롭게 사용 가능std::cout std::cin 등using std::cout; 등으로 선언하면 namespace를 따로 적어두지 않아도 된다ananymous namespace이름이 없는 네임스페이스를 만들 수 있다. static처럼 선언된 파일에서만 사용 가능하다작명 규칙변수명은 _를 붙여서(스네이크 케이스), 함수명은 ..