变量可以分为全局变量、静态全局变量、局部变量和静态局部变量
变量的声明有两种情况:
1)一种是需要建立存储空间的(定义性声明)。例如int a 在生命的时候就已经建立了存储空间。
2)另一种是不需要建立存储空间的(引用性声明)。例如extern int a 其中变量a是在别的文件中定义的。
内存区域的划分:
1)栈区:由编译器自动分配和释放的内存区域,用于存放函数的参数值、局部变量等。
2)堆区:程序员向系统申请或释放。
3)全局区:用来保存全局变量和静态变量。
4)文字常量区:用来保存常量字符串的内存区域。
5)程序代码区:用来保存函数体的二进制代码。
相关文章
- 向量体系结构(5):步幅&&集中一分散- 在C语言中,矩阵的行存储是连续的,但列之间存在较大的步幅。以矩阵D为例,如果要连续访问其列中的元素(内层循环的目的),每次迭代需要跳过整个行的宽度。Fortran语言通常以列主序存储数组,意味着矩阵的列元素在内存中是连续的,意味着访问其连续行元素时需要跨过较多内存空间。 编译器在向量化代码时,需要识别并优化这些步幅问题,以便有效地利用向量处理器的并行能力。如果不对循环进行重新排序或调整访问模式,处理器可能无法有效加载连续的向量元素到寄存器中进行并行运算,这会影响性能。 编译器可以通过循环变换(如循环展开、循环交换等)来改善内存访问模式,以减小步幅或使其适应向量寄存器的宽度。例如,通过改变循环顺序,使内存访问变得更加连续,从而减少跨步读取的次数。 向量处理器处理非连续数据
- C 语言中常量和变量的区别
- C语言中 int、long、long long 的存储空间和值的范围
- C语言中double型变量,%d输出为0 的原因
- 设置环境变量遇到的难题,cmd管理员方式与普通方式的区别,通过C#代码设置环境变量
- C语言中进程的终止方式 - 虚怀若谷
- Keil C编译器的变量存储分配 - 莫烦donkey
- C语言中所有变量和常量所使用的内存总结
- [转]深入探讨C语言中局部变量与全局变量的作用域与存储类别
- c 语言中宏定义和定义全局变量的区别