sizeof数组名和字符指针是有区别的

sizeof数组名和字符指针是有区别的。

#include <stdio.h>
#include <stdlib.h>
void change(char url[]);
int main(int argc,char* argv[])
{
    char* src="/its.php22222";
    printf("length:%d\n",sizeof(src));
    char url[2048]="zhanghanqing";
    printf("length:%d\n",sizeof(url));
    char* zhang=url;
    printf("length:%d\n",sizeof(zhang));
    change(url);
    return 0;
    //memset(url,'\0',sizeof(url))
}
void change(char url[])
{
    printf("length:%d\n",sizeof(url));
}

代码没有啥实际意义,就是为了看一下sizeof数组名和字符指针的区别。

结果为:

length:8
length:2048
length:8
length:8

当数组名作为函数参数传递时,会退化为字符指针。

posted @ 2016-10-09 20:58  青儿哥哥  阅读(3686)  评论(0编辑  收藏  举报