#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 4
还没领身份证你也能知道身份证号码有几位
|
3
kanhongj OP 哦哦哦,悟了悟了,明白了,有点到思维胡同了,哈哈哈,谢谢
|