From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/EXAMPLES/inc_dec.c | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 reference/C/EXAMPLES/inc_dec.c (limited to 'reference/C/EXAMPLES/inc_dec.c') diff --git a/reference/C/EXAMPLES/inc_dec.c b/reference/C/EXAMPLES/inc_dec.c new file mode 100644 index 0000000..76ba776 --- /dev/null +++ b/reference/C/EXAMPLES/inc_dec.c @@ -0,0 +1,54 @@ +/************************************************************************* + * + * Purpose: Demonstrate the increment and decrement operators. + * + * Author: M.J. Leslie. + * + * Date: 07-Apr-94 + * + *************************************************************************/ +main() +{ + + /* + * ++i - i incremented before i is used. + * --i - i decremented before i is used. + * j++ - j is incremented AFTER j has been used. + * j-- - j is decremented AFTER j has been used. + */ + + int i=1,j=1; + + puts("\tDemo 1"); + printf("\t%d %d\n",++i, j++); /* O/P 2 1 */ + printf("\t%d %d\n",i, j); /* O/P 2 2 */ + + i=1;j=1; + + puts("\n\tDemo 2"); + printf("\t%d \n",i=j++); /* O/P 1 */ + printf("\t%d \n",i=++j); /* O/P 3 */ + + +/************************************************************************ + + This is a GOT YA + +*************************************************************************/ + + /* Consider this code */ + + i = 0; j = 0; + + puts("\n\tDemo 3"); + if ( (i++ == 1) && (j++ == 1)) puts("Some text"); + + /* Will i and j get incremented? The answer is NO! Because + * the expression in the left of '&&' resolves to false the + * compiler does NOT execute the expression on the right and + * so 'j' does not get executed!!!!! */ + + + printf("\t%d %d\n",i, j); /* O/P 1 0 */ + +} -- cgit v1.2.3-54-g00ecf