通常我们声明一个带有数据类型的变量,即
int temp;
temp将在堆栈中分配4个字节。每当我们使用temp时,就意味着我们指向为temp创建的内存。 我们可以将temp视为指针吗?因为当我们使用temp时,这意味着我们间接访问内存中的4个字节。?
答案 0 :(得分:3)
不,就int temp;
而言,如果我们说temp
,我们指的是变量anmed temp
所持有的值。
如果我们说&temp
,那么我们指的是变量temp
的地址。
您可以在c
中阅读有关data types的一些基础知识。
BTW &
是“运营商的地址”。只想提到
答案 1 :(得分:1)
temp将在堆栈中分配4个字节。
将分配临时值取决于您声明它的位置,还取决于编译器。它将在.data或.bss段中分配,以防您在文件范围内声明它或作为静态。如果您在本地声明它,它将被分配在堆栈或CPU寄存器中。如果编译器想要这样做,它也可能完全被优化掉。
每当我们使用temp时,就意味着我们指向为temp
创建的内存
有点,但只是间接的。生成程序机器代码的编译器知道变量的分配位置,并在机器代码中使用该地址。
我们可以将temp视为指针吗?
不,它是一个变量,是为了存储数据而分配的一大块数据。
另一方面,指针是为了存储地址而分配的一大块数据。