![]() |
| ||
| Plz Solve this problem... Hi . i m new in c++ programming..plz help me in sorting out this problem..... HOW THE VALUE OF "j" VARIES IN FOLLOWING PROBLEMS ? Plz Explain... 1. int i=10,j; j= (i++) + (i++); cout<<j; 2. int i=10,j; j= (i++) + (++i); cout<<j; 3. int i=10,j; j= (++i) + (i++); cout<<j; 4. int i=10,j; j= (++i) + (++i); cout<<j; |
| ||
| Re: Plz Solve this problem... I hate it when teachers teach undefined behavior. :angry: The value of j will depend on the compiler you are using because the language does not define the behavior of i. |
| ||
| Re: Plz Solve this problem... But turbo C..compiler shows the value oj j in ... 1. 20 2. 22 3. 22 4. 24 But i unable to understand why its showing these values... |
| ||
| Re: Plz Solve this problem... It's the order that the sums and increments are executed. In each expresion you listed there are different addition operations to be done and depending on what order you do them effects the result. i++/++i is shorthand for i = i + 1; If you place the ++ before the i (prefix) this is generally accepted as increment i *before* evaluating the expression, putting ++ after the i (postfix) means evaluate the expression first and increment i *afterwards*. Also placing things in parentheses generally means evaluate this part of the expression first, but I imagine they are only in this example for clarity (there's only so many +'s the human eye can take!) |
| ||
| Re: Plz Solve this problem... Read about Sequence Points |
| ||
| Re: Plz Solve this problem... Quote:
|
| ||
| Re: Plz Solve this problem... 1. j= (i++) + (i++); Compiles to machine instructions in this order: j = 10 + 10 i = 10 + 1 i = 11 + 1 2. and 3. i = 10 + 1 J = 11 + 11 I = 11 + 1 4. i = 10 + 1 i = 11 + 1 j = 12 + 12 |
| ||
| Re: Plz Solve this problem... But like everyone else points out it's kind of nonsense, because 1. why would you ever need to do that anyway? Obfuscation? other than that I can't think of anything. and 2. it's contrary to the standard. |
| ||
| Re: Plz Solve this problem... Quote:
|
| All times are GMT -4. The time now is 5:09 pm. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC