auto는 C++11에서 생긴 편리한 문법인데,
변수 선언시에 따로 데이터 타입 설정 없이 auto라고만 하면 초기화 하는 값에 따라 알아서 타입을 맞춰준다.
auto a1 = 3; //int
auto a2 = 2.3f; //float
auto a3 = 2.3; // double;
auto a4 = Knight(); //Knight;
auto a5 = "ASDF"; //const char*
auto에 *을 붙일 시 초기화 값이 포인터일 경우에만 작동한다.
auto* p1 = "ABCD"; //const char*
auto* i1 = 3; // (x)
주의해야 할점은 auto는 const, &를 무시한다는 것이다.
int& ref = a;
const int cst = a;
auto b1 = ref;//int
auto b2 = cst //int
그래서 참조값을 auto로 선언할 때는 auto& 를 써야 사용할 수 있다.
auto를 남용하는 것은 오히려 데이터 타입을 알아보기 힘들기 때문에 좋지 않고,
타입을 작성하기 너무 길어지는 경우에 auto를 사용하는 것이 좋다.
'C++' 카테고리의 다른 글
| [C++] typedef보다 using을 사용하자. (0) | 2022.06.25 |
|---|---|
| [C++] NULL은 int고 nullptr은 포인터다. (0) | 2022.06.25 |
| [C++] algorithm 헤더의 remove, remove_if 주의점 (0) | 2022.06.24 |
| [C++] 값 타입 변환 vs 참조 타입 변환 (0) | 2022.06.22 |
| [C++] new vs malloc (0) | 2022.06.22 |