WeSearch

Discussion about C array type semantics

·9 min read · 0 reactions · 0 comments · 12 views
#programming#c language#arrays#pointers#semantics
⚡ TL;DR · AI summary

The article discusses the peculiarities of C array types and their semantics. It highlights how array types are treated as pointers in many contexts, which can lead to confusion. The author suggests that a clearer distinction between arrays and pointers could simplify understanding for learners.

Key facts
Original article
Anselmschueler
Read full at Anselmschueler →
Opening excerpt (first ~120 words) tap to expand

C array types are weird In this article I’ll explain what I find weird about them, what I’d do differently, and ramble on a few related things. Technically speaking, an array type T[n] (for some n) is distinct from a pointer type T *. A value of type T[n] represents a contiguous sequence of T values in memory, n long. But you can’t actually refer to values of type T[n]. Any expression that would be of that type is immediately converted to a pointer, type T *, namely a pointer to the first element. Since the array indexing operator arr[ix] actually operates on pointers, acting like *(arr + ix), you can basically treat arrays like pointers. An important instance where this doesn’t happen is in sizeof arr, which returns sizeof(T) × n.

Excerpt limited to ~120 words for fair-use compliance. The full article is at Anselmschueler.

Anonymous · no account needed
Share 𝕏 Facebook Reddit LinkedIn Threads WhatsApp Bluesky Mastodon Email

Discussion

0 comments

More from Anselmschueler