> With the former, you tell the C compiler "there's a value in memory somewhere 
> which is a pointer to a character" > With the latter, you say: "there's a 
> value somewhere in memory which is a character, and there may be more 
> characters after it"

Thats both true and not true. In theory arrays in C are a collection of items, 
but in practice they're almost always implicitly treated as pointers and 
dereferenced.

> And if you try to use the latter in a place where a pointer is expected, the 
> C compiler implicitly takes the address for you. With the former it simply 
> reads the value to get the address.

Generally its better to think of the array in C as a pointer with some extra 
syntax. Thats why the Nim output code for `ptr UncheckedArray` would generally 
function correctly.

Heres a good reference for exact behaviors: 
<https://www.geeksforgeeks.org/difference-pointer-array-c/>

Reply via email to