以上test1和test2可以同时编译连接通过,如果你感兴趣的话可以用ultraEdit打开test1.obj,你可以在里面着"123456"这 个字符串,但是你却不能在test2.obj里面找到,这是因为g_str是整个工程的全局变量,在内存中只存在一份, test2.obj这个编译单元不需要再有一份了,不然会在连接时报告重复定义这个错误! 有些人喜欢把...
.data段占用可执行文件空间,其内容有程序初始化。 4. 常量区 字符串、数字等常量存放在常量区。 const修饰的全局变量存放在常量区。 程序运行期间,常量区的内容不可以被修改。 5. 代码区 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。 字符串常量和define定义的常量也有可能存放在代码区。 二、...
int *p2 = malloc(4); //已初始化局部指针变量p2 //全局区 static int mp1; //未初始化局部静态变量 static int mp2=2; //已初始化局部静态变量 //常量区 char *vv = "I LOVE YOU";//已初始化局部指针变量 char *mq = "5201314"; printf("\n栈区-变量地址\n"); printf("未初始化局部变量...
C 语言根据变量作用域的不同,将变量分为局部变量和全局变量 1. 局部变量 定义:在函数 内部 定义的变量「形式参数也属于局部变量」 作用域:只在定义它的函数内部有效,即只有在定义它的函数内部使用,其它函数不能使用它 2. 全局变量 定义:在 所有函数外部 定义的变量 作用域:从定义变量的位置开始到源程序结束,即...
在C语言中,常量可以是整数、浮点数、字符或字符串。 1、 整数常量 整数常量是指不带小数部分的数字。在C语言中,整数常量可以用十六进制、八进制或十进制表示。下表列出了不同进制下整数常量的表示方法: 例如,下面的代码定义了三个整数常量: #include < stdio.h >intmain() {intdecimal_num =10;intoctal_num...
int a = 10;在定义变量的同时给变量赋值,称为初始化。 变量分为全局变量和局部变量,怎么理解呢? 通俗地看,全局变量就是{}外的变量,局部变量就是{}内的变量。 总结 本节给大家详细介绍了变量和常量,其中变量分为全局变量和局部变量,常量分为整型常量、浮点型常量、...
字符串、数字等常量存放在常量区。 const修饰的全局变量存放在常量区。 程序运行期间,常量区的内容不可以被修改。 5. 代码区 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。 字符串常量和define定义的常量也有可能存放在代码区。 二、STM32存储器分配 ...
我们平时在定义全局变量的时候,紧接着就初始化可以有效避免上述情况的发生。 在这里再介绍一个关键字:extern 它的作用是:引用外部符号 如下图所示: 常量 一.常量的分类 1.字面常量; 即下方100这种 2.const修饰的常变量; 我们都知道赋值语句左边必须是可修改的左值,一般地,如下图所示程序是没有问题的 ...
3>全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的 另一块区域。- 程序结束后由系统释放。 4>常量区 —常量字符串就是放在这里的。程序结束后由系统释放。
函数内声明了与全局变量同名的局部变量时,则全局变量会被隐藏。 常量 定义方式:const <数据类型> <常量名> = <常量值> const属性表示该变量的值一旦初始化后,不能修改,即变成常量。 作用:替换C89的直接量,这样修改的时候比较容易。 注意: