выглядит очень странно. Зачем оно так написано? Причём тут указатель на массив длины argument? Не зная первого - я не смог бы понять второе описание. Я что-то упускаю?
Для правильного вопроса надо знать половину ответа
Квадратные скобки - это, в данном случае, обозначение необязательного параметра. Три точки - указание на то, что параметр может повторяться. То есть, допустимые варианты:
int scanf ( const char * format );
int scanf ( const char * format, argument );
int scanf ( const char * format, argument1, argument2 );