Content deleted Content added
→Sample code: re |
|||
Line 10:
The article states that the "increment operator increases the value of its operand by 1", but this is only sometimes correct, and misses the point of the operator. The operator actually increases the value by an amount that reflects the number of machine words required to store the data. So if it's a character pointer on a byte-oriented machine, it increments by 1. If it's a pointer to a 4-byte int, then it increments by 4. If it's a pointer to a float on a machine that represents floating-point numbers in a single word, then it increments by 1, but on a modern byte-oriented machine it might increment it by 8. The point is, the compiler knows the size of the items and the machine's word-alignment requirements, and increments by the correct amount so the sense of the operation is always "step to the next thing". If the operand is an integer, then ++ steps to the next integer value, which is the same as adding 1, but this is only one narrow use case (which happens to be the one many people know about and use often). The article, as written, ignores the major value the operator has for programs that use pointers and structs. <!-- Template:Unsigned IP --><small class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/199.27.168.23|199.27.168.23]] ([[User talk:199.27.168.23#top|talk]]) 02:43, 22 February 2018 (UTC)</small> <!--Autosigned by SineBot-->
: I agree. "Step to the next thing" is the primary meaning of increment. I added a few words about this -- incrementing a pointer to a 106 byte structure increases the pointer by 106, etc.
: I see that others also seem confused by "incrementing" often increasing the value of a pointer by some amount other than 1 byte -- [https://stackoverflow.com/questions/6631903/c-struct-pointer-iteration "C struct pointer iteration"]; [https://stackoverflow.com/questions/21071515/how-to-use-a-pointer-with-an-array-of-struct/21071935 "How to use a pointer with an array of struct?"], etc.
: How can we make this less confusing? --[[User:DavidCary|DavidCary]] ([[User talk:DavidCary|talk]]) 22:55, 5 August 2021 (UTC)
==Sample code==
|