3 ms·
I disagree, the following: int* foo, bar; could be interpreted as declaring two pointers, whereas: int *foo, bar; makes it clear that only the first var
by gmartres 16y ago
I disagree, the following:
int* foo, bar;
could be interpreted as declaring two pointers, whereas:
int *foo, bar;
makes it clear that only the first variable is a pointer.
- godDLL 16y agoI don't think you should be declaring mixed types with one statement. Declare a pointer, then declare the `int` separately -- and the mystery is gone.
- masklinn 16y agoI believe the point is that, with that syntax, you can't declare multiple same-type pointers on the same line
- scott_s 16y agoI find that problem goes away if you only declare a single variable per line. Generally, I find people who do int* foo; Started with C++ and people who do int *foo; Started with C. I started with C++.
- dkersten 16y agoI have made the same observation and as someone who started with C++, I think it makes more sense that int* i; is an int pointer named i. int *i; just looks strange.. an int named pointer i umm? Besides, declaring only one variable per line seems less cluttered to me, so I never get the int* a, b; confusion.
- rbonvall 16y agoWhen used in an expression, I read p as "what's pointed by p". In a declaration, this applies as well: int *i; means "what's pointed by i is an int".
- dkersten 16y agoThat makes more sense alright, but I still think it would make a lot more sense if * was bound to the type.
- prodigal_erik 16y agoI never put the asterisk next to the type, because I wanted to train myself the way the grammar actually works rather than the way almost everyone wished it worked.
- scott_s 16y agoBut the compiler recognizes the type of the variable as int*.
- rue 16y agoDeclaring two different types on the same line is fraught with confusion, so it is to be avoided.