빼기(–)Subtraction (-)

빼기 연산자(-)는 두 번째 피연산자를 첫 번째 피연산자에서 뺍니다.The subtraction operator (-) subtracts the second operand from the first. 두 피연산자 모두 정수 계열 또는 부동 형식이 되거나 하나는 포인터가 되고 다른 하나는 정수가 될 수 있습니다.Both operands can be either integral or floating types, or one operand can be a pointer and the other an integer.

두 포인터를 뺀 후 포인터가 주소를 지정하는 형식의 값 크기로 그 차를 나누어 부호 있는 정수 값으로 변환합니다.When two pointers are subtracted, the difference is converted to a signed integral value by dividing the difference by the size of a value of the type that the pointers address. 정수 값의 크기는 ptrdiff_t 형식에 의해 표준 포함 파일 STDDEF.H에 정의됩니다.The size of the integral value is defined by the type ptrdiff_t in the standard include file STDDEF.H. 결과는 두 주소 간 해당 형식의 메모리 위치 수를 나타냅니다.The result represents the number of memory positions of that type between the two addresses. 포인터 산술에서 설명한 대로 결과는 같은 배열의 두 요소에 대해서만 의미가 있습니다.The result is only guaranteed to be meaningful for two elements of the same array, as discussed in Pointer Arithmetic.

정수 값을 포인터 값에서 빼면 빼기 연산자가 포인터가 주소를 지정하는 값의 크기를 곱하여 정수 값(i)을 변환합니다.When an integer value is subtracted from a pointer value, the subtraction operator converts the integer value (i) by multiplying it by the size of the value that the pointer addresses. 변환 후 정수 값은 i 메모리 위치를 나타내며 각 위치의 길이는 포인터 형식으로 지정됩니다.After conversion, the integer value represents i memory positions, where each position has the length specified by the pointer type. 변환된 정수 값을 포인터 값에서 빼면 결과는 원래 주소 앞의 메모리 주소 i 위치입니다.When the converted integer value is subtracted from the pointer value, the result is the memory address i positions before the original address. 새 포인터는 원래 포인터 값에 의해 주소가 지정된 형식의 값을 가리킵니다.The new pointer points to a value of the type addressed by the original pointer value.

참고 항목See Also

C 가감 연산자C Additive Operators