❶ c语言中,符号常量和变量一样,使用前必须先定义,并占有一定的内存空间。对吗
不对。
符号常量和变量一样,使用前确实必须先定义,但符号常量不占用内存空间。
符号常量会在预处理阶段由预处理器用它的定义直接替换,到编译阶段符号常量根本就不存在了,是不会分配内存的。
比如,假设有符号常量pai的定义:
#define pai 3.14
和如下使用它的语句:
double r=8,c=2*pai*r,s=pai*r*r;
则经预处理器处理后,以上语句变成了:
double r=8,c=2*3.14*r,s=3.14*r*r;
到编译阶段已不存在符号常量了。
❷ c语言中,常量是存放在内存中吗
常量和变量是放在不同的"段"(section)里,程序一旦加载,常量/变量自然都在内存里。
在程序的运行过程中,把需要处理的数据存放在内存储器中,称始终保持不变的数据为“常量”,称存放可变数据的存储器单元为“变量”,其中的数据称为变量的值。
整数是以补码的形式转换为二进制代码存储在计算机中。
实数是以IEEE754标准转回换为二进制代答码存储在计算机中。
字符本质实际也与整数的存储方式相同(先通过ASCII码把字符转换为对应的整数,再按整数以补码形式转换为二进制)。
(2)c语言中常量到底占不占内存空间扩展阅读:
在除了‘C/C++’的一些高级程序语言中,‘常量’可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。
但在 ‘C/C++语言中’,‘常量’如果还用‘运行过程中不变的量’来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。在 ‘C/C++’中,定义‘指针常量’时,根据‘const ’的位置的不同,可以定义出几个不同的形式,虽然其看起来‘符合常量的概念’,但是在实际运行中,其值或地址值是会发生变化的。所以本质还不是‘常量概念’
❸ 谭浩强的C语言书中说常量也占内存,我有疑问
谭浩强的C语言书很老旧。
int i=4;
过去 常量 4 要放到 常量区。
int i, 要分配 变量 存放单元。
然后 再 把 常量区的那个存4的单元里的4 赋给 i。
--
现在, int i=4;处理为 声明与初始化。int i, 要分配 变量 存放单元,接着初始化存值4。
这样,常量就不另占单元。
---
但是
char *p="abcd";
"abcd" -- 仍要放入常量区
char *p -- 指针占4个字节。
❹ C语言中常量有没有占内存求高手帮忙
肯定占内存啊。只是它占用的是内存中的某一静态区域,也就是说 在程序运行期间,只有一份拷贝在内存中,程序结束后自动释放
❺ c语言中,常量到底占不占内存空间
c语言中,常量占内存空间。
变量使用前必须先进行定义。在内存中分配一块存储空间给变量,以便以后存储数据。如果定义了多个变量则为多个变量分别分配不同的存储空间。
不同类型的变量占用不同大小的存储空间,因为内存极其有限,分配适当的存储空间可以以最少的空间来存储它们,以节省空间。
(5)c语言中常量到底占不占内存空间扩展阅读:
变量使用注意:
变量的作用域:从变量定义的哪一行开始,直到代码块结束。
Return;退出函数,清除内存中的数据。
建议:使用矩形方框和excel来分析内存。
代码块{}的作用:可以用来提高性能,即时回收不再使用的变量。
❻ 变量常量到底占用内存空间吗,什么样的常量变量占用内存空间谢谢了谢啦😊。
数据呀,如果出现大量数据被读入内存,然后就占内存呀,如果这些大量数据需要复杂计算(计算算法的缓存机制也会占有大量内存),复杂计算吃掉大量CPU资源的。
linux :top
❼ c语言,哪些占用空间,哪些不占用空间
变量分为:全局变量,局部变量,静态变量 占用的内容区域都是不一样,详细看看书就知道了。宏在编译的时候,编译器不会为他分配内存,只是进行替代,也就是你说的不占内存。但是你的理解有问题,不是占不占的问题,而是怎么占的问题。这就是内存的存储原理。除了宏,目前编译器都是要分配内存的!
❽ c语言常量 占内存吗
不占内存!!!
比如你定义了个 #define P 3.1415
这个是完全不占内存的!在进行编译的时候编译器会把程序里所有 P 都改成3.1415 的!
其实在C 语言里的#define 是不太符合“常量”这个名字的。。。。。。
在C++ 里用const 定义的那才叫真正的常量!值不可以改变,是占内存的!
❾ C语言常量问题
常量它也是有地址的,只是和变量存贮的地方不同,但是存储的形式是一样的,就是在内存的地方不同,内存中有专门放常量的,通过存储方法的角度是区分不了变量和常量的,只能通过其存储的值是否变化来区分(以人的角度),和存放的地点不同区分(机器的角度)
比如在单片机中,就分为程序区和数据区,它的常量就放在程序区中
❿ c语言中为什么字面常量与宏定义不占内存空间
因为宏在预处理阶段就会被替换掉,到了编译的阶段是没有宏存在的,它自然到不了可执行文件中,所以它不占内存空间。字面常量,占不占空间要看情况。使用方式如下:
1、首先新建一个工程和.c文件,输入头文件、主函数和宏定义。