카테고리 없음

계산 처리 과정

jjon-jonny 2024. 3. 4. 16:25


int arr[100001] = {};
long long sum = 0;


sum = arr[i] *(i + 1);  일때 오른쪽 항의 계산은 어떻게 처리 될까?

 

sum 이 long long 이니까 오른쪽 또한 long long 이 되겠지 라고 생각 하였지만

두 수는 모두 int 형이기에 int 로 계산되어 나오고, 이후 long long으로 담겨진다. 즉 이상한 숫자가 나온다는 것...(오버플로우 시)