您所在的位置:Seago-Microsoft Windows>>Windows管理脚本>> 关于C指针和数组的问题。

关于C指针和数组的问题。

作者:管理员 来源:新浪爱问 日期:2008-04-16 

void fun1(void)
{
char a[100];
printf("fun1: %d\n",sizeof(a));
}

void fun2(char a[100])
{
printf("fun2: %d\n",sizeof(a));
}

其结果为:
fun1: 100
fun2: 4

请问这是为什么? 问题补充:
能不能说的再详细些,还有就是从内存的角度想呢? 电脑问题网给出的最佳答案 void fun2(char a[100])
fun2 函数的形式参数是 char 类型的指针,指针占4个字节,所以
fun2 中的 sizeof(a) 等于4

fun1 中的 sizeof(a)求的是 a数组的长度!等于100

其他回答   fun1 中的 sizeof(a) 指的是 a数组的长度!
fun2 中的 sizeof(a) 指的是 a 数组的起始地址 所以是4
原因是fun2 函数参数是 char a[100]这样的调用 ,是地址!

上一篇:帮帮我   下一篇:java图片移动