반응형
auto
초기식에서 선언된 변수의 형식을 추론합니다.
(C#의 var 형식과 비슷해 보입니다.)
auto 키워드는 형식의 자리 표시자이지만 그 자체가 형식은 아닙니다. 따라서 sizeof 와 같은 연산자에 사용할 수 없습니다.
auto 키워드는 복잡한 형식의 변수를 선언하는 간단한 방법입니다. 예를 들어 초기화 식에 템플릿, 함수에 대한 포인터 또는 멤버에 대한 포인터가 포함된 변수를 선언하는 데 auto를 사용할 수 있습니다.
#include <iostream>
using namespace std;
int main()
{
int count = 10;
int& countRef = count;
auto myAuto = countRef;
countRef = 11;
cout << count << " ";
myAuto = 12;
cout << count << endl;
}
#include <initializer_list>
int main()
{
// std::initializer_list<int>
auto A = { 1, 2 };
// std::initializer_list<int>
auto B = { 3 };
// int
auto C{ 4 };
// C3535: cannot deduce type for 'auto' from initializer list'
auto D = { 5, 6.7 };
// C3518 in a direct-list-initialization context the type for 'auto'
// can only be deduced from a single initializer expression
auto E{ 8, 9 };
return 0;
}
범위 기반 for 문에서 루프 매개 변수를 선언하는 데 사용되는 경우 auto
예를 들어 for (auto& i : iterable) do_action(i);
#include <iostream>
using namespace std;
int main()
{
int a[5] = { 1,2,3,4,5 };
for (int i = 0; i < 5; i++)
cout << a[i] << " ";
cout << endl;
for (int i : a)
cout << i << " ";
cout << endl;
for (auto i : a)
cout << i << " ";
cout << endl;
return 0;
}
범위 기바 for문에서 auto를 형식으로 배열의 값을 할당할 때는 반드시 참조 연산자(&)를 사용해야 합니다.
#include <iostream>
using namespace std;
int main()
{
int a[5];
for (auto& i : a) // <<---------
i = 5;
for (auto i : a)
cout << i << " ";
cout << endl;
return 0;
}
아래의 코드 조각은 auto 키워드를 사용할 수 있는 몇 가지 방법을 보여 줍니다.
int j = 0; // Variable j is explicitly type int.
auto k = 0; // Variable k is implicitly type int because 0 is an integer.
두 선언은 동일합니다.
첫 번째 문에서 변수 j 는 형식 int으로 선언됩니다.
두 번째 문에서는 초기화 식(0)이 정수이므로 변수 k 가 형식 int 으로 추론됩니다.
초기식에서 선언된 변수의 형식을 추론합니다.
반응형
'C_C++' 카테고리의 다른 글
(C언어) qsort 함수를 이용한 숫자 정렬 (0) | 2022.10.04 |
---|---|
(C언어) 선택 정렬 Selection Sort (0) | 2022.10.02 |
(C언어) 버블 정렬 Bubble Sort (0) | 2022.10.02 |
(C언어) 로또 번호 생성: 중복되지 않은 수 (0) | 2022.10.02 |
(C언어) -1.0 ~ 1.0 사이의 난수 생성하기 (0) | 2022.10.02 |