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
當數組名作為函數參數傳遞時,會退化為字符指針。