.bss段不占用可执行文件空间,其内容由操作系统初始化。 .data段 已初始化的全局变量存放在.data段。 已初始化的静态变量存放在.data段。 .data段占用可执行文件空间,其内容有程序初始化。 4. 常量区 字符串、数字等常量存放在常量区。 const修饰的全局变量存放在常量区。 程序运行期间,常量区的内容不可以被修改...
这是宏常量(又叫符号常量)的定义形式,常量名是PI,常量的值是3.14,也有自己的内存空间,只是放在了只读区域,至于常量的类型,是隐含起来的,通过数值本身的形态编译器自动识别的。这个常量的类型,一定要小心了,初学者都会犯错,类型是double,不是float!如果想要定义一个float型宏常量,可以这样做:#define P...
.data段占用可执行文件空间,其内容有程序初始化。 4. 常量区 字符串、数字等常量存放在常量区。 const修饰的全局变量存放在常量区。 程序运行期间,常量区的内容不可以被修改。 5. 代码区 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。 字符串常量和define定义的常量也有可能存放在代码区。 二、...
常量的内存空间在编译时就确定,并且常量通常存储在只读存储器中(如常量区)。 常量的值在程序中可以直接使用,通常用于表示固定的数值、字符串或者其他不可变的数据。 在C语言中想要定义常量和定义变量差不多,但是需要多使用一个关键字const,通过这个关键字标记标识符中存储的值是只读的、不可修改的。 constintvalue1...
“int ig=0x102;” 中的ig是全局变量,被初始化的全局变量在.data节中分配存储空间,0x102作为变量的初始值存储在ig的空间中。“804a01c:02 01 00 00”中的“02 01 00 00”就是0x102。 4. 存储整型常量时有大端\小端方式。 例如, 在“8048417: c7 45 ec 98 ff ff ff movl $0xffffff98,-0x14(%eb...
所谓的常量区就是一块专门腾出来放常量的内存区罢了。计算机每个内存块都有编号,这个编号就是内存块的地址,这个地址CPU可以找得到。在需要用某个常量的地址的时候,CPU就会找到这个常量的所在的内存,记下它的编号,将这个编号数据存入另一块小内存中。打个比方:内存好像一条大街,大街上有好多房子,...
str1,str2,str3,str4是数组变量,它们有各自的内存空间;字符数组作为局部变量被存储在栈区; 而str5,str6,str7,str8是指针,它们指向相同的常量区域。"abcd"被存储在静态数据区,而且是全局的, 问题的引入: 看看下面的程序的输出: #include<stdio.h>char*returnStr(){char*p="hello world!";returnp; ...
const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。 const可节省空间,避免不必要的内存分配,提高效率。
在C语言中,其值不能被改变的量称为常量。常量有5种类型:整型常量、实型常量、字符常量、字符串常量和符号常量。下面一起来详细看看! (一)数值转换 数字的四种表现形式: ①:二进制:所有数字由0,1构成,逢二进一,二进制数中不会出现2.。 例:110101 ②
实型变量也可以称为浮点型变量,浮点型变量是用来存储小数数值的。在 C 语言中,浮点型变量分为两种:单精度浮点数(float)、双精度浮点数(double),但是 double 型变量所表示的浮点数比 float 型变量更精确。下表列举了两种不同浮点型数所占用的存储空间大小及取值范围。