是什么意思?
int main(int argc, char *argv[]) {
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
}
如果我们转换变量的内存地址,我真的不明白它会是什么。
答案 0 :(得分:2)
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
size
是一个int
变量,占用一个4字节的内存块(通常)。&size
因此是该内存块的地址。char *stack = (char *)&size
意味着stack
是指向char的指针,指向该4字节内存块的开头。基本上*stack
是4字节int变量的第一个字节,精确值取决于平台(取决于机器的字节顺序)