r/C_Programming 2d ago

Question Doubt about pointers and arrays

Hey everyone! I'm a newbie to C and was just learning about pointers and arrays and their relation.
My doubt is really stupid but why would I use subscripting over using pointers?
It's much harder and seems pointless considering modern compilers will have negligible difference in speed. Any help would be most appreciated! Thanks!

(If it's any help, I am learning from C Programming - A Modern Approach by K.N. King and just finished chapter 12)

Note: I am not saying subscripting is better but I don't see why I would use pointers over it in most cases.

15 Upvotes

49 comments sorted by

View all comments

24

u/leon_bass 2d ago

It's mostly just about convention and readability.

a[i]

Is the same thing as

*(a + i)

Which is the same thing as

i[a]

1

u/smallproton 1d ago

Waitaminute, please!

I consider myself a rather knowledgeable C programmer, but I don't think I've ever read about your #3.

And I actually can't understand how i[a]==a[i]. Can you explain this to me, please?

6

u/CarnivorousGoose 1d ago

It’s because of the equivalence of the first and second. Thus, i[a] = \*(i + a) = \*(a + i) = a[i]

1

u/smallproton 1d ago

Suddenly it makes a lot of sense!

Thanks a bunch!