我正在尝试检查指针是否指向某个字符.
像这样:
#include<stdio.h>
#include<string.h>
#define a 3
int func(char *);
int main()
{
char *s="a";
int type;
type=func(s);
printf("%d",type);
return 0;
}
int func(char *s)
{
int type;
if(*s=="a")
{
type=1;
}
return type;
}
Run Code Online (Sandbox Code Playgroud)
但我经常收到警告:警告:指针与整数之间的比较if(*s =="a")
是否可以比较指针和整数?
还有另一种方法可以解决这个问题吗?
我可以找到哪个字母指向*s而不打印它?
"a"不是字符,它是字符串文字.'a'是一个字符文字,这是你在这里寻找的.
另请注意,在您的比较中,*s == "a"它实际上"a"是指针,*s哪个是整数... *取消引用s,这导致char(一个整数)存储在指向的地址处s.但是,字符串文字充当指向字符串第一个字符的指针"a".
此外,如果您将其更改为固定的比较*s == 'a',你只检查是否第一个字符的s是'a'.如果您想比较字符串,请参阅strcmp.