zoukankan      html  css  js  c++  java
  • sizeof()的一些思考,地址里到底存了哪些信息

    1.sizeof()函数的一些思考

    测试代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        int* nptr1;
        int* nptr2 = NULL;
        int* nptr3 = malloc(5*sizeof(int));//重点是这个,sizeof(nptr3)求得的长度是4
        int  nptr4[5];
        int  nptr5[5] = {1,2,3,4,5};
    
        int length1 = sizeof(nptr1);
        int length2 = sizeof(nptr2);
        int length3 = sizeof(nptr3);
        int length4 = sizeof(nptr4);
        int length5 = sizeof(nptr5);
    
        printf("length1 = %d\n", length1);
        printf("length2 = %d\n", length2);
        printf("length3 = %d\n", length3);
        printf("length4 = %d\n", length4);
        printf("length5 = %d\n", length5);
    
        return 0;
    }

    结果如下:

    结论:
        int* nptr3 = malloc(5*sizeof(int)); // sizeof(nptr3)求得的长度是4,因为只是定义个一个int型指针,所以长度是4
        int  nptr4[5];                                // sizeof(nptr4)求得的长度是20

    sizeof()这个函数到底是怎么实现的,为什么sizeof(nptr4)是20,为什么sizeof(nptr3)是4,难道地址和地址还不一样?

    2.地址里到底存了哪些信息

    为什么sizeof()的长度会不一样,地址和地址不一样,还是地址里存有长度信息? 

  • 相关阅读:
    最小生成树的解法
    51nod 1212 无向图最小生成树
    greater()和less()的使用
    51nod1183 编辑距离
    51nod 1181 质数中的质数(质数筛法)
    upper_bound和lower_bound的用法
    线段树最全模板
    bryce1010专题训练——线段树习题汇总
    51nod 1174 区间中最大的数
    51nod 1113 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3095840.html
Copyright © 2011-2022 走看看