“!=”:“int”与“char [2]”的间接级别不同,请问如何修改?

#include<stdio.h>
#include<string.h>
#include<math.h>
void main()
{
    char a[20]={0};
    int i;
    for(i=0;a[i]!="\0";i++);
    i--;
    for(;a[i]!="*";i--);
    i++;
    a[i]=0;
    puts("%s",a);
    
       
      
}

比较的是字符,不是字符串,使用单引号括起来,'\0'  '*'  ;

然后第一个for循环,a[i]就已经'\0'了,导致for循环执行完后i == 0,然后你在i--,i == -1;第二个for训话,在调用a[-1] != '*',数组越界了。

用单引号别用双引号,因为是字符