タグ

ブックマーク / meryngii.hatenablog.com (1)

  • 配列を返す関数 - meryngii.neta

    C言語では配列を返す関数を作ることができない。 int a[100]; int f()[100] // エラー:関数は配列を返せない { return a; } 当は int[100] f() // エラー:構文エラー { return a; } と書きたいところだが、これはC言語の奇妙な文法に合致しない。 複雑な宣言 - meryngii.neta この現象は基的にC++でも同様である。上のようなコードを書くとエラーになる。 しかし、C++には参照がある。関数は参照を返すことができるし、配列の参照を取ることもできる。 int (&f())[100] { return a; } ... f()[0] = 0; // OK なんとこれはコンパイルすることができる。参照ってすごいや。 だがこの例は文法がいささか変態的である。できることなら次のように書きたいところだが、 int[100]&

    配列を返す関数 - meryngii.neta
    teppodone
    teppodone 2017/10/06
    “配列を返す関数 C++ C言語では配列を返す関数を作ることができない。” #てぽめも
  • 1