变长数组
来源:互联网 发布:c语言long是什么意思 编辑:程序博客网 时间:2024/05/01 12:52
在 C89 和 C++ 中, 一个数组的尺寸必须是一个整型常量表达式以便于在编译时计算大小. 在 C99 中, 最新的 ANSI/ISO C 标准, 该规则被放松了 -- 你现在可以使用任何整数表达式定义一个数组的长度:
int func(int dim)
{
int arr[dim]; /*possible only in C99*/
}
这个元素个数可以在每一次函数调用时修改, 这样他的长度只有在运行时可以计算. 这样的数组称之为变长数组:
int main()
{
int dim;
printf("enter array's size: ");
scanf("%d",&dim);
func(dim);
}
要支持变长数组, C99 修改了 sizeof 操作符的机制. 通常, sizeof 表达式在编译时进行计算, 但是当作用于变长数组时, 结果需要在运行时计算.
记住变长数组不是动态数组 -- 它们不在生命周期中修改长度. 它们和普通数组的不同之处在于可以在每次实例化是定义不同长度. 变长数组只能是本地的. 注意, 标准 C++ 不支持变长数组. 因为很多 C++ 编译器也是 C 编译器, 它们中的一些可能支持这种特性作为一个非标准扩展.
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- 变长数组
- C语言变长数组
- 变长数组和alloca
- PL/SQL变长数组
- C语言变长数组
- 变长(柔性)数组
- PL/SQL变长数组
- 如何使用内存池监视器 (Poolmon.exe) 来解决内核模式内存泄漏
- 瓶子里发豆芽的命运
- C# 操作excel 进行分列操作
- 职业规划与职业选择
- C++读取Excel文件(97-2000) *.xls
- 变长数组
- WinForm中如何判断关闭事件来源于用户点击右上角的“关闭”按钮
- c#窗口中的资源读取 Form.resx
- 写给即将入行的程序员的一封信
- 关于无限级树状目录表中的路径分析(编号:20110705A0836 )
- Counting Objects in C++
- 中国谚语日文对照
- 一个简单的C#多线程间同步的例子
- 关于分页 HTML 代码中的 Js 函数指定问题( 编号:20110705A0847 )