if文とかの条件って、int型になるの?

float a;

if ( a ) {
;
}

とかってやると、aは、int型に勝手に変換される?

unsigned int a;
とか
char a;
とかも、みんなintになる?