473,411 Members | 2,196 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,411 software developers and data experts.

f=++i||(k++)&&1; how are such expressions evaluated??

6
f=++i||(k++)&&1;
how are such expressions evaluated??
in my code this k never got incremented (i!=-1)


incremnt and decrement operators have higher precedence than && and || then shouldn't this mean that all these unary operators are evaluated in a logical expression
Feb 16 '10 #1
1 1854
donbock
2,426 Expert 2GB
Expand|Select|Wrap|Line Numbers
  1. f = ++i || (k++) && 1;
  2. g = A || B && C
The second statement is a more general version of the first. Use of logical operators means that g is assigned the value 1 if the expression is true or 0 if it is false.

The first logical operator is || (logical-or). This operator takes two arguments. The result is true if either argument is nonzero. If the first argument is nonzero then there is no need to evaluate the second argument. In fact, the C standard guarantees that it will not evaluate the second argument in this case. There is a similar guarantee for the && operator (logical-and) when its first argument is zero. If the second argument is not evaluated then side-effects associated with it do not occur. Refer to short-circuit evaluation for more details.
Feb 16 '10 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

5
by: Roshan | last post by:
This is regarding the article titled "C++ & Double-Checked Locking" by Scott Meyers and Andrei in DDJ July 2004 issue. I think the reasoning in this article is fundamentally flawed due the...
20
by: Vivek N | last post by:
Hi Folks, This question may well have been asked and answered before. But, sorry that I couldn't find one from the archives. I typed up this program and compiled it with gcc 3.3.2 main() { int...
21
by: siliconwafer | last post by:
Hi, In case of following expression: c = a && --b; if a is 0,b is not evaluated and c directly becomes 0. Does this mean that && operator is given a higher precedence over '--'operator? as...
72
by: Paminu | last post by:
In math this expression: (a < b) && (b < c) would be described as: a < b < c But why is it that in C these two expressions evaluate to something different for the same values of a, b and...
2
by: Mr Newbie | last post by:
Ive got the basic idea behind DataBinding Expressions, but I have a couple of questions, Ok its four actually :) Q1.) It would appear that if you use Page.DataBind that all child controls and...
17
by: Mike Labosh | last post by:
I would really rather use the "dot-nettified" syntax rather than digging global functions out of Microsoft.VisualBasic. Anyone know the newfangled way to achieve the same results? -- Peace &...
8
by: Roshan Mathews | last post by:
According to the precedence rules && has a higher precedence than || and both are 'left to right' associative. So in an expression like ++i || ++j && ++k where i, j, k are 0, -1, 0 (before...
9
by: marko | last post by:
/* code start */ int a = 0; /* expected evaluation and excution order with precedence in mind /* False(3) , True(1), False(2) */ if ( (a=1) == 0 || 0 != 1 && (a =2) == 1) putchar('T');...
0
by: grbCPPUsr | last post by:
I am new to Python. I would like to use Python for the specialized purpose of dynamic expressions parsing & evaluation in my C++ application. I would like to encapsulate the expressions to be...
12
by: Angus | last post by:
If I need to check if a pointer is valid I usually do a if(ptr) check first. But I have seen code such as this: if((myptr) && (myptr->IsGreen()) Is this valid? Is it because evaluation...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.