理解c语言中的基本变量声明

时间:2014-11-14 14:25:32

标签: c

通常我们声明一个带有数据类型的变量,即

int temp;

temp将在堆栈中分配4个字节。每当我们使用temp时,就意味着我们指向为temp创建的内存。 我们可以将temp视为指针吗?因为当我们使用temp时,这意味着我们间接访问内存中的4个字节。?

2 个答案:

答案 0 :(得分:3)

不,就int temp;而言,如果我们说temp,我们指的是变量anmed temp所持有的值。

如果我们说&temp,那么我们指的是变量temp的地址。

您可以在c中阅读有关data types的一些基础知识。

BTW &是“运营商的地址”。只想提到

答案 1 :(得分:1)

  

temp将在堆栈中分配4个字节。

将分配临时值取决于您声明它的位置,还取决于编译器。它将在.data或.bss段中分配,以防您在文件范围内声明它或作为静态。如果您在本地声明它,它将被分配在堆栈或CPU寄存器中。如果编译器想要这样做,它也可能完全被优化掉。

  

每当我们使用temp时,就意味着我们指向为temp

创建的内存

有点,但只是间接的。生成程序机器代码的编译器知道变量的分配位置,并在机器代码中使用该地址。

  

我们可以将temp视为指针吗?

不,它是一个变量,是为了存储数据而分配的一大块数据。

另一方面,指针是为了存储地址而分配的一大块数据。