申し訳ありませんが、かなり無知で初心者の質問だと思います。
CGDirectDisplayID displays[10];
uint32_t numDisplays;
CGGetOnlineDisplayList(10, displays, &numDisplays);
上記の関数は、displays[] 配列に値を入力し、結果 (オンライン ディスプレイの数) を numDisplays に返します。ヘッダーの定義は次のとおりです。
CG_EXTERN CGError CGGetOnlineDisplayList(uint32_t maxDisplays,
CGDirectDisplayID *onlineDisplays, uint32_t *displayCount)
CG_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_NA);
「&numDisplays」を使用する理由は理解できます。関数に変数のアドレスを指定して、変数を直接変更できるようにしています。しかし、配列で同じオペランドを使用しないのはなぜでしょうか? numDisplays を処理するのと同じ方法で処理するべきではありませんか? 関数にアドレスを渡さない場合、関数はどのようにして配列に値を設定するのでしょうか?