C++ (코테용)키워드 정리

서재혁·2022년 8월 2일
0

C++

목록 보기
4/7

auto

auto란?

c++11이전: 자동 저장소 클래스에 있는 변수, 지역변수를 선언하는 역할
c++11부터: 선언의 초기화 식에서 형식이 추론되는 변수를 선언하는 역할

식을 추론할 수 없는 경우나 같은 여러 변수를 넣어 초기화 하는 방법은 오류를 발생시킴

사용 예제

//사용 가능
auto a = true;
auto b = 'Y';
auto c = L'Y';
auto d = "문자열";
auto e = 26;
auto f = 3.12;
auto g = 10000000000;

auto &h = e;	//참조
auto *i = &e;	//포인터

//사용 불가
auto D = { 5, 6.7 };
auto E{ 8, 9 };
void add(auto a, auto b){}		// 함수 매개변수 사용 불가

struct {
    auto b;
}
class Person{
    auto name;
} // 멤버 변수로 사용 불가

이러한 장점이 존재하는 auto가 있어 개발이 쉽고 간편해 지지만 무분별하게 사용하는것은 자료형을 파악하기 어려워 지고 가독성이 낮아지게 된다. 그렇기 때문에 코드 컨벤션 등을 지키면서 적절한 위치에 사용을 한다면 아름다운 코드를 만들 수 있을 것이다.

new와 delete

new?delete?

new : heap 영역에 메모리를 만들고 그 주소를 return
delete: 가리키는 주소의 메모리를 해제

int* pnum = new int;
int* arr = new int[5];

int N;
int* arr = new int[N];

// 초기화

int* num = new int(10);
float* pfloat = new float(75.25);
int* pary1 = new int[3]{}; // 0으로 초기화

// 2차원 배열 할당
int** arr = new int[10][5]; // 에러
int(*arr2)[5] = new int[10][5]; // 가능
auto arr3 = new int[10][5];

delete[] arr2;

new는 함수가 아닌 동적할당 연산자이다.
연산자이기 때문에 malloc보다 빠른 특징이 있다.

출처 :
https://dydtjr1128.github.io/cpp/2019/06/04/Cpp-auto.html
https://jhnyang.tistory.com/334

profile
조금만 더

0개의 댓글