sizeof()関数演算子で配列を引数に取った場合に、char型の配列であれば何らかの終端表現が存在するので出力出来るのは理解できるのですが、なぜint型の配列などを渡しても全体のサイズが分かるのでしょうか。
1.char型でなくても終端表現がなんらかの形で存在する
2.sizeof()関数演算子が使われている場合はコンパイラがサイズの情報をどこかに保存してくれている
3.配列を宣言した時点で末端のアドレスと先頭のアドレスが保存される(もしこれならchar型の終端表現が必要無くなると思うのでなさそう)
4.コンパイラによって1.2を使い分けている
ここらへんが思いつきましたが調べてもちゃんとした情報にたどり着けませんでした。
またもし終端表現などが存在するのなら、関数の引数として配列を渡す場合に配列の長さも渡す必要は無いんじゃないかなと思いました。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/15 07:25
2022/08/15 07:33 編集
2022/08/15 07:51