For 루프 초기화에서 다양한 유형의 변수 선언
C에서는 루프 내에서 다양한 유형의 변수를 직접 선언하는 것이 불가능합니다. for 루프의 초기화 본문입니다. 이는 루프 초기화 부분에서 동일한 유형의 변수만 정의할 수 있는 단일 표현식을 예상하기 때문입니다.
다음 예를 고려하세요.
for (int i = 0, j = 0; ...) { // ... }
이 코드는 두 개의 정수 변수 i를 올바르게 정의합니다. 그리고 j. 그러나 초기화 내에서 정수와 문자를 선언하려고 하면 컴파일 오류가 발생합니다.
for (int i = 0, char c = 'a'; ...) { // ... }
기술적 해결 방법
그렇지는 않지만 실제 시나리오에서는 for 루프 초기화 내에서 다양한 유형을 선언하는 기술적 해결 방법이 있습니다. 여기에는 원하는 유형을 포함하는 단일 구조체를 생성한 다음 이 구조체를 초기화 표현식으로 사용하는 작업이 포함됩니다.
struct MyStruct { int a; char b; }; for (MyStruct s = { 0, 'a' }; s.a < 5; ++s.a) { std::cout << s.a << " " << s.b << std::endl; }
이 예에서는 a(정수)와 b( 문자). 루프 초기화는 MyStruct 인스턴스 s를 0과 같은 a와 'a'와 같은 b를 갖도록 설정합니다. 그런 다음 s.a가 5보다 작은 한 루프가 계속됩니다.
위 내용은 C For 루프 초기화에서 다양한 유형의 변수를 선언할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!