结构指针是否在定义指向数组的指针出来就已经指向结构

如果结构中含有指针,则可以定义一个指向该结构的指针吗,为什么我定义了这个指针但是提示我没有声明_百度知道
如果结构中含有指针,则可以定义一个指向该结构的指针吗,为什么我定义了这个指针但是提示我没有声明
typedef struct seqstack *
struct seqstack
scanf(&%d&,&n);
S-&a=(int*)malloc(sizeof(int)*n);//用malloc建立一个大小为n的数组a
S-&top=-1;
我是用vs运行的 为什么它一开始就提示我S没...
我有更好的答案
你S也要分配内存,先用malloc给S分配内存。
typedef struct{
int *}SeqSscanf(&%d&, &N);SeqStack S;S.a = (int *)malloc(N * sizeof(int));S.top = -1;这是另一种写法,是正确的,他的S不是指针,他这种方法为什么不用给S申请空间也可以?
结构体变量自动会申请,结构体指针变量要自己申请空间。
感谢,终于明白了
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。转自http://www.jb51.net/article/42140.htm
结构体变量的指针就是该变来那个所占据的内存段的起始地址。可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。
设p是指向结构体变量的数组,则可以通过以下的方式,调用指向的那个结构体中的成员:
(1)结构体变量.成员名。如,stu.num。
(2)(*p).成员名。如,(*p).num。
(3)p-&成员名。如,p-&num。
#include&iostream&
#include&string&
struct Candidate{
int main(){
Candidate c_leader[2]={"Tom",5,"Marry",8};
Candidate *p1,*p2;
cout&&(*p1).name&&":"&&(*p1).count&&
p2=&c_leader[1];
cout&&p2-&name&&":"&&p2-&count&&
说明,结构体数组也和其他数组一样,一维数组的数组代表首个元素的地址
我们了解到,结构体中可以包含很多类型的成员变量,那么可否包含指针变量成员呢?答案是可以的。
那么是否也可以包含指向同类结构的结构体变量呢?当然可以,链表就是应用了这个原理。
#include&iostream&
#include&string&
struct Candidate{
Candidate *//定义了指向Candidate类型变量的指针
int main(){
Candidate c_leader[3];
c_leader[0].name="Tom";
c_leader[0].count=5;
c_leader[0].next=&c_leader[1];
c_leader[1].name="Nick";
c_leader[1].count=9;
c_leader[1].next=&c_leader[2];
c_leader[2].name="Jim";
c_leader[2].count=10;
c_leader[2].next=NULL;
Candidate *p=c_
while(p!=NULL){
cout&&p-&name&&":"&&p-&count&&
//也可以(p+1)-&name...来实现
阅读(...) 评论()定义结构体指针有什么用_百度知道
定义结构体指针有什么用
请问结构体指针有什么用
为什么访问里面的成员一定要定义个指针-& 指过去
为什么不直接定义个变量用.直接访问
struct student{
struct student*
}stu,*stu1;
stu1-&score = 98;和stu.score=98都一样可...
我有更好的答案
  定义结构体指针用于构建链表,该结构体类型定义出来是为是表示链表中的每一个结点的,这个next是指向下一个结点的指针。  t  typedef struct{  selemtype *  selemtype *    }//T1  template &class T1&  void Initstack(T1 &S) {  S.base=new selemtype[INISIZE];  if(!S.base) exit(OVERFLOW);  S.top=S.  S.stacksize=INISIZE;  }//初始化栈  结构体指针:  typedef struct Lnode{    struct Lnode *  }Lnode,*LinkL  void CreateList(LinkList &L,int n,int array[])  {  L=new L  L-&next=NULL;  int q=L;  for(int i=0;i&=n;i++)  {  LinkList p=new L  q-&next=p;  p-&next=NULL;  q=q-&  p-&data=array[i];  }  }//初始化单链表L
采纳率:97%
来自团队:
因为有成员next&& 他是一个指针struct&student{&&&&char&*&&&&int&&&&&struct&student*&&&};
那个next是不能用 .去访问的是吧?
本回答被提问者和网友采纳
为您推荐:
其他类似问题
结构体的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。徐豪坤!QQ帐号:
现手机号:。投稿:29粉丝:111分享--dynmicweibozoneqqbaidu将视频贴到博客或论坛视频地址复制嵌入代码复制微信扫一扫分享收藏0硬币--稍后看马克一下~用手机看转移阵地~用或其他应用扫描二维码手机下视频请使用扫码若未安装客户端,可直接扫此码下载应用看过该视频的还喜欢正在加载...miniOFF如何理解结构中包含一个指向结构本身的指针? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。63被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答struct Node;
Node node1, node2, node3;
node1 -& node2 -& node3 -& null;
struct Node
Node node1, node2, node3;
node1-&next-&node2;
node2-&next-&node3;
node3-&next-&null;
struct Node
Node *next
Node node1, node2, node3;
node1-&next = node2;
node2-&next = node3;
node3-&next = null;
65 条评论分享收藏感谢收起105 条评论分享收藏感谢收起

我要回帖

更多关于 指针可以指向结构体 的文章

 

随机推荐