프로그래밍/C++

for문(반복문), size_t

FORHAPPy 2021. 9. 10. 23:22

<기본 for문 : ~하는 동안>

아래의 순서대로 코드가 실행된다.

for (        1.초기화식      ;      2.조건식        ;       4.증감식        )
  {
  3.코드블록
  }

 

<그림 1-1> for문은 초기화, 조건식, 증감이 한번에 들어갈 수 있다. 

따라서 조건이 하나였던 while보다 광범위하게 쓰일 수 있다. 

 

초기화식을 초기에 한번만 실행이 된다. 다시 초기화가 되지않는다.

초기화식은 따로 빼서 전역변수로 따로 선언해도 된다. 

3가지 식을 모두 빼도 상관이 없지만 세미콜론은 꼭 2개를 남겨놔야한다.

<for문의 3가지 식을 전부 밖으로 

<그림1-2> for문 안의 3가지 식을 밖으로 빼보았다.

조건식으로 for문을 빠져나올 수 있도록 break를 꼭 걸어줘야 한다.

조건식은 false를 반환하면 함수를 빠져나온다.

조건이나 초기화 증감을 중첩해서 사용할 수 있다.-> 콤마로 구분 한다.

 

 

<그림1-3>이중 for문 반복문 중첩사용 가능하다.

반복문은 서로 얽혀서 사용 가능하다. 

for문 안에 꼭 for문 하나만 넣지 않고 for문 2개 3개를 넣어도 된다.

상황에 따라 구조는 자기가 짜기 나름이다.

 

 

<그림1-4>

그림 1-4 처럼의 for문의 구조도 가능. 하고 for 문안의 while 도 가능하다.

반복문을 겹쳐서 사용할 수 록 그 수의 제곱배 만큼 가지수가 늘어나서 

복잡해진다. 따라서 3개 4개까지는 잘 사용하지는 않는다.

 

 

 

1
2
3
4
5
6
 
int sum = 0;
for (size_t i = 0; i < 10++i)
{
    sum += i;
}
cs

<size_t>

size_t 는 typedef 를 이용하여 정의한 하나의 별칭(alias)이다. 

size_t는 부호 없는 정수형 (unsinged integer)으로 sizeof, alignof, offsetof의 반환 값입니다. 이론적으로 가능한 오브젝트의 최대 크기를 저장할 수 있는 타입이며 일반적으로, 배열 인덱싱 및 루프 계산에 사용됩니다. 이렇게 size_t 라는 이름으로 정의해 놓은 것입니다. size_t 는, 32비트 운영체제에서는 "부호없는 32비트 정수"이고, 64비트 운영체제에서는 "부호없는 64비트 정수"입니다.  시스템에 따라 크기가 변화한다.

unsigned_int 타입이 "아니다" unsigned 자료형을 반환한다. 이론적인 최대 크기를 표현하는 자료형이다.

 

 반복문을 사용할때 int의 경우 오버플로우를 발생 시킬 수 있다. 안전하게 사용하기 위해서 size_t를 사용할 수 있다.

size_t가 필요한 이유는 1바이트로 만들 수 있는 최대 크기의 array(배열) 라든지, 하나의 값이 가질 수 있는 최대의 크기를 범위로 하는 값을 다룰 때 필요하다. 최대 크기 까지 사용하고 싶을때 사용한다고 보면 된다.

또 한개의 파일 크기가 4GB가 넘거나 큰 데이터를 다뤄야 한다면 필수적으로 알고 있어야 한다.

 

size_t를 쓰기 위해 필요한 헤더파일은 그때그때 찾아보자 ^^