我们有以下代码:
#include <stdio.h>
#define LEN 10
int main(void) {
int i;
int array[LEN];
int *p;
for (i = 0; i < LEN; i++) {
array[i] = i;
}
for (p = &array[0]; p < &array[LEN]; p++) {
printf("Address: %p ", p);
printf("Value: %d\n", *p);
}
return 0;
}
它要求我们找出服务器使用了多少字节来存储一个整数变量,并在换行符上打印它,它给了我们使用 sizeof 的提示。
现在,我对指针有点菜鸟,所以这可能是一个非常快速的问题,但我应该打印:
printf("Size of int: %d", sizeof(p));
或sizeof(*p)
一个打印 4,另一个打印 8。我倾向于 8(简单地来自 p),因为它指的是内存位置,而不是它指向的变量的值,对吧? 8 表示 8 位,所以 1 个字节就是答案?
最佳答案
针对您的特定问题的一个简单解决方案是在类型名称上使用 sizeof
:
sizeof(int)
sizeof(int *)
您会毫无疑惑地获得所需的答案。
关于c - 如何使用 sizeof 运算符计算出使用多少字节来存储 C 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9610813/