Что делает этот кусок кода и что означает каждый из используемых символов? Используемый язык C, и я только начинающий программировать

Наткнулся на код, который я не мог понять, что делают эти две строки. Не могу даже получить синтаксис. Пожалуйста, укажите, какой тип функциональности использовался, например, например, я предполагаю, что в первой строке были использованы условные операторы.

unsigned long long base_size = b >= 2 ? (b-2)/2:0;
printf("%llu\n",(base_size*(base_size+1))/2);

Ответы на вопрос(1)

Ваш ответ на вопрос