В работе с libbson постоянно используется конструкция вида type var_name[1]
например тут - http://api.mongodb.org/c/0.4/bson.html
bson b[1];
bson_init( b );
bson_append_int( b, "count", 1001 );
bson_finish( b );
bson_destroy( b );
что не очень очевидно (на мой вкус). Понятно, что используется имя массива как указатель на первый элемент. Но почему не делается это явно?
Например так:
bson b;
bson_init( &b );
bson_append_int( &b, "count", 1001 );
bson_finish( &b );
bson_destroy( &b );
Ну, или если сильно не хочется писать амперсант, то
bson bs;
bson *b = &bs;
bson_init( b );
bson_append_int( b, "count", 1001 );
bson_finish( b );
bson_destroy( b );
Если ли какие-нибудь преимущества записи указателя как массива из одного элемента, и, вообще, блин, зачем так непонятно писать?