Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
Then again, at least in C, the mantra is “declaration follows usage”. Surely you don’t write pointer dereferences as * ptr? Most likely not, you most likely write it as *ptr. The idea behind the int *ptr; syntax is basically that when you do *ptr, you get an int.
And with this idea, stuff like function pointers (int (*f)(void)), arrays of pointers (int *a[10]) versus pointers of arrays (int (*a)[10]) etc. start making sense. It’s certainly not the best way to design the syntax, and I’m as much a fan of the Pascal-styled “type follows the identifier” syntax (e.g. letx: number;) as anyone, but the C way does have a rhyme and a reason for the way it is.
Then again, at least in C, the mantra is “declaration follows usage”. Surely you don’t write pointer dereferences as
* ptr
? Most likely not, you most likely write it as*ptr
. The idea behind theint *ptr;
syntax is basically that when you do*ptr
, you get anint
.And with this idea, stuff like function pointers (
int (*f)(void)
), arrays of pointers (int *a[10]
) versus pointers of arrays (int (*a)[10]
) etc. start making sense. It’s certainly not the best way to design the syntax, and I’m as much a fan of the Pascal-styled “type follows the identifier” syntax (e.g.let x: number;
) as anyone, but the C way does have a rhyme and a reason for the way it is.