A. c语言,哪些占用空间,哪些不占用空间
变量分为:全局变量,局部变量,静态变量 占用的内容区域都是不一样,详细看看书就知道了。宏在编译的时候,编译器不会为他分配内存,只是进行替代,也就是你说的不占内存。但是你的理解有问题,不是占不占的问题,而是怎么占的问题。这就是内存的存储原理。除了宏,目前编译器都是要分配内存的!
B. C语言中,常量占内存空间吗请高手指教
常量分几种情况:1、用#define定义的宏,此时其实它是立即数,在编译的时候,会直接写入程序不会占空间
2、用定义一个变量存储了一个常数(其实这时候是一个变量了,要占RAM空间的);
3、定义在ROM中,如“__ROM"来声明,这时候就占ROM,而不是RAM,我们所说的内存指RAM,所以不占内存。
C. 在C语言中,函数的形参和实参可以占同一个存储单元,也可以占不同的存储单元吧
形参只是实参的一个副本,即拷贝,它们不能公用存储单元。
参数之间的传递分为数值传递与地址传递,如果是数值传递时,各自占用不同的内存单元,如果是地址传递时,共用同一段内存单元。
函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的回内存单元。
形参只是实参的一个副本,即拷贝,它们不能公用存储单元,不占相同的空间。
(3)c语言什么不占内存扩展阅读:
函数调用过程
1、函数的形参列于函数声明中,在函数定义的函数体内使用。在未出现函数调用时,形参不占内存中的存储单元;当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
2、将实参的值传递给形参。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。
3、在执行函数期间,由于形参已经有值,可以利用其进行相关运算。
4、通过return语句将函数值带回到主调函数。
5、调用结束,形参单元被释放。实参单元仍保留并维持原值(值传递)。
D. C语言编译,如何减少内存
用时再申请内存,用完了就放掉,要考虑到变量的生命周期,在合适的位置声明变量
E. C语言中形参在未调用时为什么不占内存
C语言的函数的形式参数是函数的局部变量,所以只在调用时创建,返回后消失。
F. C语言编译预处理是不是不占内存
编译时占编译的内存
运行的时候 不会有额外内存消耗。
G. c语言函数名占不占内存
函数名称不会分配内存
函数实际功能的bin实现会分配
H. c语言中,常量到底占不占内存空间
c语言中,常量占内存空间。
变量使用前必须先进行定义。在内存中分配一块存储空间给变量,以便以后存储数据。如果定义了多个变量则为多个变量分别分配不同的存储空间。
不同类型的变量占用不同大小的存储空间,因为内存极其有限,分配适当的存储空间可以以最少的空间来存储它们,以节省空间。
(8)c语言什么不占内存扩展阅读:
变量使用注意:
变量的作用域:从变量定义的哪一行开始,直到代码块结束。
Return;退出函数,清除内存中的数据。
建议:使用矩形方框和excel来分析内存。
代码块{}的作用:可以用来提高性能,即时回收不再使用的变量。
I. c语言常量 占内存吗
不占内存!!!
比如你定义了个 #define P 3.1415
这个是完全不占内存的!在进行编译的时候编译器会把程序里所有 P 都改成3.1415 的!
其实在C 语言里的#define 是不太符合“常量”这个名字的。。。。。。
在C++ 里用const 定义的那才叫真正的常量!值不可以改变,是占内存的!