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

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM