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
当数组名作为函数参数传递时,会退化为字符指针。