The sine and cosine operations are conceptually native to a mathematical coordinate system that look like this:
Note that:
- Zero degrees points along the X axis in the positive direction.
- Angles increase counter-clockwise.
- Y increases upward
- The origin is in the center
In 2D graphics you're often in a situation where the origin is at the top-left and Y increases downward, so you're going to get a reversed Y result relative to your coordinate system. It also means that your angles will rotate clockwise instead of counter-clockwise.
In the snippet you posted you are negating the X result from cosine. That's not what you want.
More importantly, you're very, very likely to be better off using X, Y vectors instead of angles. In that case you can just give your ship a heading, such as (0.6f, 0.8f). To move forward you multiply that vector by the thrust amount (units per second) and the timeslice (seconds elapsed since last calculation), then add the result to your position vector.
If you need the angle of the ship (to rotate the sprite, for instance) you can use atan(y / x) or atan2(y, x) to get the angle in radians. Remember that the x and y you provide need to be converted to the trig coordinate system shown above, and the result will be in that same system, so you may need to invert the y you pass and negate the resulting angle, depending on what SDL wants from you.