我收到以下代码的错误
(18):错误C2064:术语不评估为采用1个参数的函数
(18):错误C2227:' - > str'的左边必须指向class / struct / union / generic type
(20):错误C2064:术语不评估为采用1个参数的函数
(20):错误C2227:' - > str'的左边必须指向class / struct / union / generic type
我已将* p声明为main函数中指向struct的指针。 我无法确定我在哪里犯了错误.Isnt * p类似于* p + 0?
#include "stdafx.h"
#include<stdio.h>
int main()
{
struct s1{
char *str;
struct s1 *ptr;
};
static struct s1 arr[]={{"Bangalore",arr+1},{"Hyderabad",arr+2},{"Kerala",arr}};
struct s1 *p[3];
int i;
for(i=0;i<=2;i++)
p[i]=arr[i].ptr;
printf("\n%s"(*p)->str);
printf("\n%s",(++*p)->str);
printf("\n%s"((*p)++)->str);
return 0;
}
答案 0 :(得分:2)
您的代码中缺少逗号:
printf("\n%s"(*p)->str);
...
printf("\n%s"((*p)++)->str);
应该是:
printf("\n%s", (*p)->str);
...
printf("\n%s", ((*p)++)->str);
您在此处发布的代码或实际代码中是否缺少它们?