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
",sizeof(src));
    char url[2048]="zhanghanqing";
    printf("length:%d
",sizeof(url));
    char* zhang=url;
    printf("length:%d
",sizeof(zhang));
    change(url);
    return 0;
    //memset(url,'',sizeof(url))
}
void change(char url[])
{
    printf("length:%d
",sizeof(url));
}

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

结果为:

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

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

原文地址:https://www.cnblogs.com/qingergege/p/5943764.html