运气好的话,这个字符数组后面是空白内存,也就是这个字符串变成了"12f";如果后面不是空内存而是跟着一个,比如说int32,就会被按照1byte读出来,读成4个byte,然后再往后读到0x00为止。当然某些编译器会把内存初始化为奇怪的东西,这时候就会一直输出奇怪的字符,这就是“烫烫烫”这个梗的由来。00分享举报为您推荐 将...
char a[5][5]; 或 int a[5][5]; 放到 main() 以前,处理为全局量,编译时会初始化为0。(若作局部量,未赋值时,元素的值不是0,不是NULL,不是'\0'。难以判断是否为“空”)
buff 取的是地址,所以不会 == NULL 应该改为:if(strcmp(buff,"")==0){ printf("Hi..\t");} 但由于buff没有清空,所以还是不会进入if 应该这样:memset(buff,'\0',sizeof(buff));if(strcmp(buff,"")==0){ printf("Hi..\t");} ...
publicclassMain{publicstaticvoidmain(String[]args){String[]array1={};// 空数组String[]array2={"Hello","","World"};// 非空数组System.out.println("是否为空数组1:"+isArrayEmpty(array1));System.out.println("是否为空数组2:"+isArrayEmpty(array2));}publicstaticbooleanisArrayEmpty(String[...
for(n=2;n<=25,n++)--- 逗号要改为分号。char a[5][5];或 int a[5][5];放到 main()以前,处理为全局量,编译时会初始化为0。(若作局部量,未赋值时,元素的值不是0,不是NULL,不是'\0'。难以判断是否为“空”)
(若作局部量,未赋值时,元素的值不是0,不是NULL,不是'\0'。难以判断是否为“空”)