В примере показано использование троичного оператора.
const char * imagename = argc> 1: argv [1]: "lana.jpg"
По троичным можно сказать, что это выражение имеет три члена.
Первый член является условным выражением
Второй член - это значение, которое можно присвоить imagename, если условное выражение истинно.
Третий элемент - это значение, которое можно присвоить imagename, если условное выражение ложно.
Этот пример можно перевести на:
const char* imagename;
if(argc > 1)
imagename = argv[1];
else
imagename = "lana.jpg";