Comparing the two versions, I found the 'clever' version to have less cognitive overhead, since the reader has less state to keep track of (1 vs 2 variables).
I don't find the pointer syntax that difficult to reason with.
How would you expand the code?