CPP         BIT  

      FALLS  

    JUST FOR FUN    

 HOME PAGEREFRESHDOUPT?GO BACK www.cpponline.8m.net FORWARDwidth=17MINIMIZEwidth=17CONTACT MEWARNING!CLOSE THIS WINDOW

                                     
A MCMILLAN PRODUCT

I mention only a limited no of bitfalls that are not available in any books. For more bitfalls please refer Yasvanth Kanithkar's books.

PROBLEM

ANSWER

void main()

{

   int a=5; int &b= a; char& c= ' \n' ; char * d= "\n" ;

   cout << a ++ << c << ++ b << d << a;

}

 

      6

      6

      5      // precedence of insertion not defined

void main()

{

  int i=4;j=7;

  int k = ( i++ , i+ 2 , ++i , j+2 , i+2);

  cout<< i<< '\n' << j << '\n\ << k;

}

 

    6

    7

    8          // sequence operator ignores all the

                    ng statements except unary

 

void main()

{

int i=4, j=5;

if ( ( i=100 ) || ( j=200) && (i=200)

  {

  cout<< i <<j;

  }

}

    200     

        5      // statements are always true

 

void main()

{

int i= 1, j = 2, k = 3, d =0;

int a = j = i = k =d+1;

cout << j << char (10) << a << '\ n ' << d;

}

   1

   1

   0 // Associative ?

 

vois main()

{

cout<< 0xffffffffffffffffffffff;

}

   4294967295 // in my computer
 

void main()

{

int a[] = {1,2,3,4,5};

int *p =a;

int * q = "mcmillan ";

cout<< sizeof (a ) <<endl<< sizeof (p) << endl <<sizeof (q );

}

 

     10         // array name not hold address on   

                                 size of and references

       2         // 16 bit address (may also be 4)

       2

static union mc{ int y; long double t ; char* o;};

void main()

{

struct mac {};

char a[] = "mcmillan ";

cout << sizeof( mac) << endl << sizeof (a) <<'\n' << sizeof (mc);

}

 

     1            // Default size of is 1

     9            // +1 for null character

   10            // depend on long double's size

 

void main()

{

int x = 5, y =6;

int *  p = &x , *q = &y;

cout<< p-q;

}

 

    1              // always one for proceeding

             local variables even for any data types

void main()

{

int x=10;

cout<<x+++x++;

}

 

   30      // Increment having higher precedence
void main()

{

int x=10;

if(x++<x)cout<<"1";

else cout<<"2";

}

 

     1              // Increment on seeing clone
 

void main()

{

cout<<(7<<1) <<endl<< (7>>1);

}

 

 

     14

      3         // Just shifting

void main()

{

int x=4;

if(x++<5 && x++ == 5) cout<<x;

else cout<<x;

}

 

    6   // Increment on seeing clone
 

void main()

{

int x=5;

int y=x & y;

cout<<y;

}

 

     4    // undefined y, but result always 

                               previous even until 9

void main()

{

int endl = 5;

cout<endl<<endl<<endl;

}

 

   555 // this is also overloading
void main()

{

int i   = 3 = = 0 = = 0 ;

cout<<i;

}

 

    1    // relational's associative ?
void main()

{

enum mac { a, b=-2,c,d ,e = c};

mac m1 = d, m2 = e;

cout<< m1 << endl <<m2;

}

 

    0         // No matter of negative

   -1         // good, no problem

void main()

{

for (static  int i = 0 ; i <= 2 ;  i++)

cout << i;

cout << i;

}

 

   0123        // forget the scope in for loop
 

void main()

{

int a[5] = {0,1,2,3};

cout<< a[5];

}

 

  0              // Missed trailer is always zero
int exchange ( int x, int y)

{

int t = x;

x = y;

y =t;

return y;

}

 void main ( )

{ int x=4, y=5;

exchange (x, y);

cout << x << endl << y ;

}

    4

    5   // sorry this is not passed as reference /    pointer / address . Just only by value

void main()

{

float i =5;

if( i <= 5) cout << "1";

else cout << " 2";

}

 

 

      2   // not for ANSI C++

TO BE CONTINUED ...>