Переменная - это имя для некоторой области памяти (имя переменной в терминах языка это идентификатор). Каждая переменная имеет тип, чтобы сказать компилятору сколько нужно памяти для неё выделить и как интерпретировать те биты, что лежат в этой области памяти.

У переменных есть еще область видимости (scope) - то есть пределы в которых эта переменная имеет смысл. И время жизни (extent, связывание), определяющее когда программа создает и удаляет перменную.

Переменные можно объявлять: