sizeof

作者: 猫爪 | 来源:发表于2015-12-14 10:59 被阅读85次

用运算符sizeof可以计算出数组的容量(字节数)

char a[] = "abcd"; sizeof(a) 的值就是 5 (注意不要忘记'\0')
但是 *p = a; sizoef(p) 的值就是 根据计算机的系统, 如: 64位的就是 8 个字节,那么指针变量需要8个字节存放地址,

而不是 p 指向的区域 的内存容量, 同时任何类型的指针 sizeof 都是 8 个字节(取决于当前系统的位数和编译器)

c 语言没有办法知道指针所指向的内存容量,除非申请的时候记住它,可以采用结构体记录,而

malloc就是这样做的 malloc 开辟的空间 其实是由一个链表管理的,而每个节点是 4个指针

一个指向一块内存,
一个指向一块内存,
一个指向存放的内容
一个是存放内容的size

相关文章

  • 布尔

    sizeof(BOOL) = 1sizeof(bool) = 1sizeof(Boolean) = 1

  • 【C语言】3.sizeof

    1.sizeof sizeof并不是函数,而是运算符。可以用sizeof计算有多少字节。通常用sizeof(常量/...

  • C 基本数据类型内存

    sizeof long int=4; //这与int一样 sizeof shor int=2; sizeof do...

  • 那些奇妙的C语言

    sizeof int等同于sizeof(int)

  • c++中特殊运算符

    运算符而不是函数 sizeof:对象大小 sizeof expr ;类型大小 sizeof(type);参数包大小...

  • sizeof(std::string), 到底是多少?

    sizeof(std::string); 又或者 std::string str="";sizeof(str); ...

  • c语言中数组指针

    c语言中没有专门计算数组长度的函数,需使用sizeof(arr)/sizeof(int)计算,其中sizeof(a...

  • enum hack test

    enum hack test output:sizeof(Y): 80sizeof(X): 1

  • 2017C++面试题

    1.sizeof和strlen的区别 sizeof和strlen有以下区别:  sizeof是一个操作符,str...

  • sizeof

    定义一个空的类型,里面没有任何成员变量和函数,对该类型求sizeof,得到的结果是? 答:1 为什么不是0? 答:...

网友评论

    本文标题:sizeof

    本文链接:https://www.haomeiwen.com/subject/exluhttx.html