
#include <stdio.h> #include <stdlib.h> struct A{ int a; char b; }; int main(){ A *ptrA; printf("%lu\n", sizeof(*ptrA)); printf("%lu\n", sizeof(A)) return 0; } 请问这两个得出来的值都为 8 ;为什么,我不理解 *ptrA 为啥也是 8 ,不是没有申请内存吗?
1 lifanxi 2022-07-03 23:39:48 +08:00 sizeof 后面本质上跟的是个类型。如果是变量,那就是这个变量对应的类型,而不是这个变量本身。 所以不管有没有分配内存,返回的都是类型的大小。 |
2 thedrwu 2022-07-03 23:41:21 +08:00 via Android 还没领身份证你也能知道身份证号码有几位 |
3 kanhongj OP 哦哦哦,悟了悟了,明白了,有点到思维胡同了,哈哈哈,谢谢 |