pSpeed pointer in the following code is equal to zero (0x00) in debugger but is casted to “true” for comparison (see program output).

#include <iostream>
using namespace std;
 
struct Car
{
    int speed;
};
 
int main()
{
    int Car::*pSpeed = &Car::speed; // = 0;
    if(pSpeed) {
           cout << "First!"<< endl;
    } else {
           cout << "Second!"<< endl;
    }
    return 0;
}
If you try assigning zero explicitly instead the other branch of “if” statement will be chosen 😉
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s