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

理解c语言中的基本变量声明,c,C,通常,当我们使用数据类型声明变量时,即 int temp; temp将在堆栈中分配4个字节。每当我们使用temp时,这意味着我们指向为temp创建的内存。 我们可以把温度作为指针吗?因为当我们使用temp时,这意味着我们正在间接访问内存中的4个字节。No,在int-temp的情况下,如果我们说的是temp,我们指的是变量anmedtemp所持有的值 如果我们说的是&temp,那么我们指的是变量temp的地址 您可以在c中阅读一些基本知识 顺便说一句,&是操作员的“地址”。只是想提一下 temp

通常,当我们使用数据类型声明变量时,即

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

No,在
int-temp的情况下
,如果我们说的是
temp
,我们指的是变量anmed
temp
所持有的值

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

您可以在
c
中阅读一些基本知识

顺便说一句,
&
是操作员的“地址”。只是想提一下

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

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

每当我们使用temp时,这意味着我们指向为temp创建的内存

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

我们可以把温度作为指针吗?< /P> 不,它是一个变量,是为了存储数据而分配的数据块


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

BTW
temp
如果是全局变量(在函数外部声明),“temp”变量是否也与其各自的4个字节一起出现在堆栈中?也就是说,在堆栈中,我们在某个地址中有Temp,在该地址下有分配给它的4个字节。
Temp
是堆栈中有4个字节内存的变量名[考虑局部变量]。这里没有
部分…:-)
temp
的地址由
&temp
返回。请尽快参考一本好的C语言书,并弄清楚上下文。@sreebalatavarti因为[在linux上],
int
被定义为有4个字节。哦,好的。因此,当它转换为汇编语言时,它会从为temp创建的内存中获取数据。我说的对吗?@sreebalatavarti是的。。。因为所有变量都必须存储在某个地方。他们不能凭空分配。