は、ここでサンプルプログラムです:長さのデータを破棄した場合のCの配列構文のポイントは何ですか?
#include <stdio.h>
void foo(int b[]){
printf("sizeof in foo: %i\n", sizeof b);
}
int main(){
int a[4];
printf("sizeof in main: %i\n", sizeof a);
foo(a);
}
出力は次のとおりです。
sizeof in main: 16
sizeof in foo: 8
質問は、それが単なる関数境界での標準的なポインタに変換されます場合は、その構文のポイントは何でしょう、ですか?
サイズがあらかじめわかっている場合は、 'void foo(int b [4])'を宣言できます。 – Kevin
@Kevinそれでは違いはありませんが、4以外の長さの配列を 'foo'に引き渡すことができます。長さ4の配列だけを許可したいなら 'foo'は' void foo(int(* b)[4]) 'でなければなりません。 – Praetorian