c语言中数据存储分为以下几个部分,每个部分存储不同的内容:
1、栈区:存放函数的参数值,局部变量的值等。
2、堆区 :存储动态生成的对象,一般由程序员分配释放。
3、静态区或者全局区: 存储全局变量和静态变量。
4、文字常量区 :存储常量字符串。
5、代码区 : 存储函数体的2进制代码。
2. c语言中变量值在计算机存储单元里以什么方式存储
可以先说说谈论哪些的类型么
~
3. C语言存储全局变量
先是 最外面,也就是全局变量的地方 定义一个全局变量但不赋值,
int a;
然后在通过函数直接调用就好了
如:
int a;
void main ()
{
scanf()...
}
4. C语言中变量存储类型有哪些
自动 静态 寄存 易失
一说是
自动(auto)、静态(static)、寄存器的(register)和外部的(extern)
然而某认为extern是用来对编译器进行声明变量的,而不是定义。
5. c语言变量储存类型深圳
auto 是自动变量是动态地分配存储空间的,数据在动态存储区,函数执行完后自动释放
实际上 auto 可以省略的,auto不写则隐含自动变量
auto Int b,c=int b,c
static是静态变量 即在函数调用后不消失而保留原值,其占用内存不释放,其值就是上次调用后的结果。
#include<stdio.h>
int fac(int n);
void main()
{ int i;
for(i=0;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
}
int fac(int n)
{static int f=1;
f=f*n;
return(f);
}
结果为1!=1
2!=2
3!=6
4!=24
5!=120
要输5次
还有register变量 和extern 变量申明
⊕
6. c语言中变量是怎样存储的
这个依照你的变量或者对象的申明位置和方式不同而不同的。
一般来说,全局变量,静态变量,首先分配,分配在静态存储空间。
局部变量,在申明的是后分配,分配在栈上。作用域结束后系统会自动回收。
动态申请的空间,在执行分配函数时分配,分配在堆上,又程序员自己写释放代码手动释放空间。
7. c语言变量如何存储在内存中
在系统为一个程序分配的空间中,分成许多段,比如有代码段,存放程序可执行代码,有数据段,可以分配变量,有常量段,专门存放常量,是只读的。常量变量可以位于数据段中,仍然是变量,只是程序没有改动权限。在程序执行到main之前,系统负责将常量区存储的常量赋值给常量。
8. C语言 变量的存储
realloc()来给数组重新分配空间.
大于你预先给定的长度时,对数组realloc()一次,增加长度就可以.
查查realloc()的参数,以及具体用法吧.
书上都有.我就不举例了!!!!!!!!
9. c语言变量存储
在函数体中定义的变量通常是在栈上,用malloc,
calloc,
realloc等分配内存的函数分配得到的就是在堆上。
在函数外部定义的变量(全局变量或静态外部变量)和在函数内部定义的static变量,其生存期就是程序运行的全过程,这些变量被存储在数据段(datasegment)中。
在函数内部定义的auto变量(没有用关键字static定义的变量)的生存期从程序开始执行其所在的程序块代码时开始,到程序离开该程序块时为止。作为函数参数的变量只在调用该函数期间存在。这些变量被存储在栈(stack)中。
10. C语言中变量的存储类型有哪几种,存储方式哪几种谢喽
在C语言中,对变量的存储类型说明有以下四种:
1、auto 自动变量
2、register 寄存器变量
3、extern 外部变量
4、static 静态变量
所谓存储类型是指变量占用内存空间的方式,也称为存储方式。
变量的存储方式可分为“静态存储”和“动态存储”两种。
1、静态存储变量通常是在变量定义时就在存储单元并一直保持不变,直至整个程序结束。
2、动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。
如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。从以上分析可知,静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。
(10)c语言变量储存扩展阅读:
变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。
一、从作用域看:
1、全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量的定义的源文件需要用extern关键字再次声明这个全局变量。
2、静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束一直存在,它和全局变量的区别在于全局变量对所有函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。
3、局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。
4、静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它文件里,不能作用到其他文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。
二、从分配空间看:
全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一个源程序的其他源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其他源文件中引起错误。
1、静态变量会放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。
2、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
参考资料来源:网络-变量-存储类型