本文主要是介绍[Error] base operand of '-' has non-pointer type 'stac,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
犯错=成长
编写顺序栈时出现下边的提醒
31[Error] base operand of '->' has non-pointer type 'stack'
直接上代码(错误版本):
#include <stdlib.h>
#include <stdio.h>
#define SIZE 1000
typedef struct{int data[SIZE];int top;
}stack; void Init(stack &s){//初始化棧,棧里面放的元素不一定是什么s.top=-1;
} //初始化完成,各种参数也已经确定void Push(stack &s,int e){if(s.top==SIZE-1)printf("已经满了~");elses.data[++(s.top)]=e;
} void Pop(stack &s,int &e){if(s.top==-1)printf("没有元素,无法抛出!");e=s.data[(s.top)--];}void Print(stack &s){while(s.top!=-1)printf("%d",s.data[s.top--]);
}int main(){stack s;Init(s);Push(s,2);Push(s,2);Push(s,2);Print(s);return 0;
}
=============================================================
以下是正确版本:
#include <stdlib.h>
#include <stdio.h>
#define SIZE 1000
typedef struct{int data[SIZE];int top;
}stack; void Init(stack &s){//初始化棧,棧里面放的元素不一定是什么s.top=-1;
} //初始化完成,各种参数也已经确定void Push(stack &s,int e){if(s.top==SIZE-1)printf("已经满了~");elses.data[++(s.top)]=e;
} void Pop(stack &s,int &e){if(s.top==-1)printf("没有元素,无法抛出!");e=s.data[(s.top)--];}void Print(stack &s){while(s.top!= -1)printf("%d",s.data[s.top--]);
}int main(){stack s;Init(s);Push(s,2);Push(s,2);Push(s,2); Print(s);return 0;
}
反思:之前从来没有太注意 “.”以及”->”之间的区别,今天才发现有多么严重。”.”适用于结构体变量,”->”适用于结构体指针变量!!!!
还有,一定要记得初始化~## 标题 ##
这篇关于[Error] base operand of '-' has non-pointer type 'stac的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!