我编写了如下简单程序。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
char* alphabate[]={
(char *)"xyz",
(char *)"abc",
(char *)"pqr",
NULL
};
void main()
{
char **pp;
for( pp=alphabate; *pp; pp++ )
{
printf("\n alphabate member %s" *pp);
}
}
但是当我在我的Linux机器上编译它时,它会在printf()语句中显示以下错误。
test.c:19: error: Invalid operands to binary * ( have 'char *' and 'char **' )
有什么想法解决它?
答案 0 :(得分:3)
printf("\n alphabate member %s" *pp);
应该是
printf("\n alphabate member %s", *pp);
答案 1 :(得分:3)
在,
printf("\n alphabate member %s",*pp);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
char* alphabate[]={
(char *)"xyz",
(char *)"abc",
(char *)"pqr",
NULL
};
int main()
{
char **pp;
for( pp=alphabate; *pp; pp++ )
{
printf("\n alphabate member %s",*pp);
}
return 0;
}
答案 2 :(得分:2)
printf("\n alphabate member %s" *pp);
你在* pp
之前缺少一个逗号答案 3 :(得分:2)
printf中的字符串后面有一个逗号丢失。一定是
printf("\n alphabate member %s", *pp);
使用您的代码,*被解释为乘法。
答案 4 :(得分:1)
将字符串文字强制转换为char *
是多余的。 C中main的签名也应该是:
int main(void)
或
int main(int argc, char *argv[])
您在printf
功能中缺少逗号。它应该是
printf("\n alphabate member %s", *pp);