关于形参所占的字节数sizeof()
# include <stdio.h># define size 6
void func_1 (const char a [size])
{
printf ("char a[size]: %d\n", sizeof (a));
}
void func_2 (char a [10000])
{
printf ("char a [10000]: %d\n", sizeof (a));
}
void func_3 (const char a[])
{
printf ("char a[]: %d\n", sizeof (a));
}
void func_4 (const char *a)
{
printf ("char *a: %d\n", sizeof(a));
}
int main (void)
{
char a[size] = {'a', 'b', 'c', 'd', 'e','f'};
char *p = a;
printf ("sizeof (a):\n");
func_1(a);
func_2(p);
func_3(a);
func_4(p);
return 0;
}
结果:
sizeof (a):
char a[size]: 4
char a [10000]: 4
char a[]: 4
char *a: 4
为什么输出结果为4.而不是6;想了很久没有想出来,特来求助。