Puntatore aritmeticoPointer Arithmetic

Le operazioni additive che includono un puntatore e un intero forniscono risultati significativi solo se l'operando del puntatore indirizza un membro della matrice e il valore intero produce un offset all'interno dei limiti della stessa matrice.Additive operations involving a pointer and an integer give meaningful results only if the pointer operand addresses an array member and the integer value produces an offset within the bounds of the same array. Quando il valore intero viene convertito in un offset di indirizzo, il compilatore presuppone che solo posizioni di memoria della stessa dimensione si trovino tra l'indirizzo originale e l'indirizzo più l'offset.When the integer value is converted to an address offset, the compiler assumes that only memory positions of the same size lie between the original address and the address plus the offset.

Questa ipotesi è valida per membri della matrice.This assumption is valid for array members. Per definizione, una matrice è una serie di valori dello stesso tipo; i relativi elementi si trovano in posizioni di memoria contigui.By definition, an array is a series of values of the same type; its elements reside in contiguous memory locations. Tuttavia, non viene garantito che l'archiviazione per qualsiasi tipo eccetto gli elementi della matrice sia soddisfatta dallo stesso tipo di identificatori.However, storage for any types except array elements is not guaranteed to be filled by the same type of identifiers. Ovvero spazi vuoti possono apparire tra le posizioni di memoria, persino posizioni dello stesso tipo.That is, blanks can appear between memory positions, even positions of the same type. Di conseguenza, i risultati dell'aggiunta o della sottrazione da indirizzi di qualsiasi valore eccetto elementi di matrice sono non definiti.Therefore, the results of adding to or subtracting from the addresses of any values but array elements are undefined.

Analogamente, quando due valori di puntatore vengono sottratti, la conversione suppone che solo valori dello stesso tipo, senza spazi vuoti, rientrino tra gli indirizzi forniti dagli operandi.Similarly, when two pointer values are subtracted, the conversion assumes that only values of the same type, with no blanks, lie between the addresses given by the operands.

Vedere ancheSee Also

Operatori di addizione CC Additive Operators