C语言错误总结:request for member ‘xxx’ in something not a structure or union

先上代码:

struct complex
{
	double a,b;
};
//判断是否收敛
int isConvergent(double x,double y){
    int i;double a,b;
    struct complex Z;
	Z.a=Z.b=0.0;
	for(i=1;i<=666;++i){
        a=Z.a;b=Z.b;
        Z.a=a*a-b*b;Z.b=2*a*b;
        Z.a+=x;Z.b+=y;
        if(Z.a*Z.a+Z.b*Z.b>4)return i;
    }
	return 0;
}

我的问题原因是声明Z时没加struct这几个字母,
没加前: complex Z;
加了后:struct complex Z;

至于其它文章说的关于.->的使用区别:
如果你声明时为struct complex *Z;,那么应该使用Z->a(*Z).a来进行调用;
如果如上面代码一样,则可以直接用.来进行调用。

灵感来源于:https://stackoverflow.com/questions/2184419/what-does-request-for-member-in-something-not-a-structure-or-union-m

你可能感兴趣的:(并行编程,c语言,开发语言,后端)