Actually, never mind what I said. The SDL_Event structure is a discriminated union, so you'll never get more than one event type at the same time. If you want to test that the user pushes the button and moves the stick in a certain time frame, you'll have to do it yourself.
(By the way, it has nothing to do with C vs C++. Single & is a bitwise op, double && is a logical op. In this case, I thought you were looking at a bitfield, so the bitwise op would be the appropriate one to use.)