Why does a dereferenced pointer with the "--" operator in C not decrement by 1 unless you put the derefencing in brackets

Because the "--" operator has higher precedence than the "*" operator, so it is applied to the pointer variable itself instead of the value it points to. Using brackets forces the dereferencing to happen before the decrement operation.

Related articles:

Understanding the Quirks of the -- Operator for Dereferenced Pointers in C
In C, dereferencing a pointer means accessing the value at a memory address held by a pointer variable. This is done using the * operator. However, when combined with the -- operator, dereferencing a pointer can yield unexpected results.

Exploring the Need for Bracketed Derefencing with the -- Operator in C
In C programming, the dereferencing operator * is used to access the value stored in the memory location pointed to by a pointer. However, when working with multi-dimensional arrays, it becomes necessary to use bracketed dereferencing with the * operator to access specific elements.

Avoiding Common Pitfalls with Pointers in C: The Importance of Proper Dereferencing Syntax
C programming is widely used across numerous applications, and pointers are an essential concept used in C programming. A pointer is a variable that contains the memory address of another variable. Pointers are used to manipulate data by pointing to the location of the data in memory.