関数の仮引数は宣言か式かこんにちはゲストさん。関数の仮引数は宣言か式か”関数の仮引数の宣言”は”変数の宣言・定義”と同じように”宣言”と明確に考えるべきなのか”関数の仮引数”を”式”と考えて良いのかという問題です。私が迷ってしまったのは"配列を仮引数"にとった例です。同じ意味になるのは、唯一、関数の仮引数の宣言のばあいだけである”という規則がありますが、これは”関数の仮引数の宣言”は変数の宣言・定義”と同じように”宣言”と明確に考えている例だとおもいます。配列は、式の中で「先頭へのポインタ」によみかえられる。関数の引数は式なので、配列は「先頭へのポインタ」に読み変えられる←引数部分を”宣言”ではなく”式”と捉えてる←ここが私の迷っているところ↓よって、関数に渡ってくるのは、結局はつねにポインタだ。私の今までの理解ではc言語では”宣言の部分”と”式”の部分は明確に区別されるものと考えていました。”宣言部分の初期化の="と”代入の=”とは明確に区別されていました。それと同じように”関数の仮引数の宣言”は”宣言部分”と捕らえるのか”式”ととらえるのか”宣言”と”式”が私の頭の中混乱しています。自体、という記述を見て、疑問点が分かったように思います。変数ですからこれ自体は式に間違いありません。例として考えてみます。ai_type[];と書けますね。この型名を使って上記の関数は次のように書けます。一部なのだということが納得できると思いますが、いかがですか。式ですかというのに近いので、これは式とはいえないということになります。いう型を構成する要素である、ということになります。自体、という記述を見て、疑問点が分かったように思います。”とあり、それに対し、詳しく説明していただき、疑問点は良く理解できました。ありえませんから少なくとも関数の"""仮引数は式とは言えないですね"""。自体はもちろん式と言えますので、念のため。]自体は式と考えてよいのでしょうか。そこが私の疑問点の核心ですので補足を投稿しました。ありえませんから少なくとも関数の仮引数は式とは言えないですね。引数は、引数型を宣言しているだけなので、宣言でしょう。引数は、引数型が決まると同時に、引数(=変数)の実体ができるという意味で、定義でしょう。同じ意味になると思います。書いても良いわけです。指すポインタだと言っていることになります。いう名前が必要になります。上記のように、配列を関数に値渡しする場合には、引数は配列の先頭アドレスで初期されれたポインタが渡ります。引数の実体がポインタなので、この場合、配列の大きさは無視されるわけですね。「関数に渡ってくるのは、結局はつねにポインタだ。」というのは、上記のような意味で正しいわけですね。