zoukankan      html  css  js  c++  java
  • 链表基础:结构体变量和结构体指针

    #include <stdio.h>
    #include <malloc.h>

    typedef struct node {
        struct node*next;
        int data;
    }node;

    int main()
    {
        node*head;
        head = (node*)malloc(sizeof(node));   //指针动态申请一块内存,指向大小为sizeof(node)的内存空间
        head->data = 3;                                     //变量初始化
        head->next = NULL;
        printf("%d ", head->data);
        printf("指针为%d个字节 ",sizeof(head));  //虽然指向的结构体大小是八字节,但指针是四个字节。

        node a;                                      //声明一个结构体类型的变量
        a.data=1;                                   //初始化结构体变量
        a.next=NULL;                            //结构中的next指针不指向任何内存
        printf("该结构体为%d个字节 ",sizeof(a));   //结构体内存为八个字节(4(int)+4(指针)=8字节)

        free(head);                               //(动态申请的空间需要手动释放)释放head指向的内存,将内存数据清除
        head = NULL;                          //head指针为NULL,不再指向这一块内存。

        return 0;
    }

    注:不管指针指向哪种类型变量,指针本身存储所需要的空间大小依然是4字节。

  • 相关阅读:
    EYES组——软件体系结构上机规划
    淘宝软件架构分析分工
    淘宝网系统架构分析以及数据库架构简介
    关于编译器与解释器的区别
    Web前端之高斯模糊图片记
    解决JS浮点数(小数)计算加减乘除的BUG
    JS滚轮事件(mousewheel/DOMMouseScroll)了解
    阻止事件冒泡
    记一次编码相关问题
    细说Form(表单)
  • 原文地址:https://www.cnblogs.com/mld-code-life/p/11749430.html
Copyright © 2011-2022 走看看