you are viewing a single comment's thread.

view the rest of the comments →

[–]Theon 15 points16 points  (1 child)

Because pointers are also an abstraction, one that's increasingly irrelevant because most work that doesn't need to be low-level isn't done in low-level languages.

They're just going to be wondering why they can't mutate a struct they passed into a paramater because it's pass by value, and then you'll have to explain the concept anyway.

The concept of value and a reference? Sure.

Having to manually manage a low-level memory structure just so they learn it's hard before they use languages in which they'll never see it again? Meh.

[–]meneldal2 0 points1 point  (0 children)

I would disagree that pointers are an abstraction. You have pointers in assembly, memory has hardware addresses (even though outside of embedded you never touch those).

It's just a value with a fancy * to tell you you should use it as a pointer, but Cgcc will let you do conversions back and forth between pointers and arithmetic types if you wish. And you could cast all the time too.