File: inc_dec.c

package info (click to toggle)
c-cpp-reference 2.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 8,012 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 115; java: 77; awk: 34; csh: 9
file content (54 lines) | stat: -rw-r--r-- 1,356 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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	*/

}