struct node 
{
char data;
node* next;
};这种结构是没错,但是理解的时候总是感觉next指针的类型是node的话,这个时候node还正在创建,大家谈谈如何理解的好吗?

解决方案 »

  1.   

    任何类型的指针所占的内存是固定的,在32位机中是4个字节。所以,在为next指针分配内存空间时无需考虑node需要的存储空间。
      

  2.   

    正解
    struct node 

    char data; 
    node* next; 
    };
    当创建一个对象node 时,其实它只是在内存中分配了一个char +家一个指针的内存空间而已
      

  3.   

    struct node 
    {
    char data;
    node1* next;
    };node ->  node1这样写肯定会报错,那按照这样说的话,编译器还是回去判断这个类名是否有效的
      

  4.   

    可以把它理解成一个链表,next是指向该类型的结构体的指针。
      

  5.   

    struct node 
    {
    char data;
    node* next;
    };
    cout<<sizeof(char)<<endl;            //1
    cout<<sizeof(node)<<endl;            //8 ?为什么第二句显示8? 按这样说应该是5(1+4)吧?
      

  6.   

    有人知道这个sizeof为什么是8吗?
      

  7.   

    看看我的这个帖子,和你的疑问一样
    http://topic.csdn.net/u/20090415/18/f7cd2155-631f-46c6-9042-bb47559d3863.html
    一看你就知道为什么了