#include<stdio.h>
#include<stdlib.h>
int main()
{int id=0;
int ceshi=2;
char a[20]={'a','baaa','c'};
for(int num;num<20;num++)
{ if(a[num='\0'])
break;
id++;}
printf("%d",id);
system("pause");
return 0;}
这是我写的一段程序,我由两个疑问。
第一呢,我声明了字符数组a[20]。我觉得每个元素只能是一个字符,但是把baaa写在一起,编译器也不会报错,这个令我觉得奇怪,为什么会这样呢?
第二呢,if 后面接的是a[num='\0'],这是一个数组,不是一个true类型或者false类型的判断条件,这么做的话,什么时候执行if下面包含的语句,是未知的。
这两个问题都是编译器的错误吗?