To move the camera around in the direction you're looking, like you would in a flying game, then you need the inverse of that rotation matrix you've already coded. For a rotation matrix, the inverse is just the "transpose matrix".
This results in the following function that you can call...
C:
void CameraMove(Camera *C, float x, float y, float z) {
C->x += x*(C->cy*C->cz) + y*(C->sx*C->sy*C->cz* - C->cx*C->sz) + z*(C->cx*C->sy*C->cz + C->sx*C->sz);
C->y += x*(C->cy*C->sz) + y*(C->sx*C->sy*C->sz + C->cx*C->cz) + z*(C->cx*C->sy*C->sz - C->sx*C->cz);
C->z += x*(-C->sy) + y*(C->sx*C->cy) + z*(C->cx*C->cy);
}
Calling like this will move the camera forward:- CameraMove(&C, 0, 0, 0.2);
Calling like this will strafe/ side-step left:- CameraMove(&C, -0.2, 0, 0);
I'm sure you can work out how to move up/down!