int型 - 16bit以上の符号あり整数型

int型は、16bit以上であることが仕様上保証される符号あり整数型です。多くの処理系では、32bit符号あり整数型として実装されているかもしれませんが、それは、C言語の仕様上保証されたものではありません。

#include <stdio.h>

int main (void) {
  int num = 34;
  printf("%d\n", num);
}

C99で導入された幅と符号あり・なしが保証される整数型

ビット幅と符号あり・なしを確実に指定するにはC99で導入された以下の整数型を使用します。数値計算を行う場合は、こちらを使用するのがお勧めです。

mainの戻り値はint型ですか?

mainの戻り値はint型、またはint型と互換性のある型です。

処理系で、int型の幅が32bitの場合は、int32_t型をmain関数の戻り値の型にしても大丈夫ですが、処理系に依存する記述を書くのは、お勧めしません。

素直にint型にしておきましょう。

数値の演算を行う場合は暗黙の型変換で、int型より小さな値がint型になる

数値の演算を行う場合は暗黙の型変換で、int型より小さな値がint型に型変換されます。以下の記事で詳しく扱っています。

関連情報