451
got him (lemy.lol)
submitted 3 weeks ago by ngn@lemy.lol to c/programmerhumor@lemmy.ml
you are viewing a single comment's thread
view the rest of the comments
[-] Tyoda@lemm.ee 10 points 3 weeks ago* (last edited 3 weeks ago)

In C an assignment is an expression where the value is the new value of what was being assigned to.

In a = b = 1, both a and b will be 1.

a = *(p = p + 1)

is the same as

p += 1
a = *p

, so ++p.

[-] fluckx@lemmy.world 1 points 3 weeks ago

What I meant was:

In the screenshot it said x = *(++p) and iirc that is not the same as saying x = *(p++) or x = *(p += 1)

As in my example using ++p will return the new value after increment and p++ or p+=1 will return the value before the increment happens, and then increment the variable.

Or at least that is how I remember it working based on other languages.

I'm not sure what the * does, but I'm assuming it might be a pointer reference? I've never really learned how to code in c or c++ specifically. Though in other languages ( like PHP which is based on C ) there is a distinct difference between ++p and (p++ or p+= 1)

The last two behave the same. Though it has been years since I did a lot of coding. Which is why I asked.

I'll install the latest PHP runtime tonight and give it a try xD

this post was submitted on 09 May 2024
451 points (92.3% liked)

Programmer Humor

30950 readers
163 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 4 years ago
MODERATORS