you cannot do nesting of post-increment operator whereas pre-increment nesting does not cause any problem
conclusion : never do post increment nesting
eg :
int a = 10; cout<<(++(++a))<<"\n";// valid in c++ cout<<((a++)++); // in-valid in c++
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3690 |
2 | jiangly | 3647 |
3 | Benq | 3581 |
4 | orzdevinwang | 3570 |
5 | Geothermal | 3569 |
5 | cnnfls_csy | 3569 |
7 | Radewoosh | 3509 |
8 | ecnerwala | 3486 |
9 | jqdai0815 | 3474 |
10 | gyh20 | 3447 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | maomao90 | 174 |
2 | awoo | 164 |
3 | adamant | 163 |
4 | TheScrasse | 159 |
5 | nor | 157 |
6 | maroonrk | 155 |
7 | -is-this-fft- | 152 |
8 | Petr | 146 |
8 | orz | 146 |
10 | BledDest | 145 |
you cannot do nesting of post-increment operator whereas pre-increment nesting does not cause any problem
conclusion : never do post increment nesting
eg :
int a = 10; cout<<(++(++a))<<"\n";// valid in c++ cout<<((a++)++); // in-valid in c++
Название |
---|
Why is it so? What error can it cause?
It is not possible to post-increment an r-value.
Thanks, just googled what r-value and l-value are? We cannot increment a++. Thanks!
I encountered this error in Java while trying to nest pre- and post-increment operators and came across this thread while trying to find the reason. I want to add that nesting of both pre-increment and post-increment operators is not allowed in Java. E.g. ~~~~~ int a = 5; System.out.println(++(++a)); // required: variable found: value System.out.println((a++)++); // required: variable found: value ~~~~~
Reference — 1. Postfix Expressions — https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.14 2. Prefix Expressions — https://docs.oracle.com/javase/specs/jls/se21/html/jls-15.html#jls-15.15.1