
c++ 字符数组 赋初值
为什么说“外部和静态数组可以赋初值”??理由是什么其他存储类型为何不可??本人菜鸟请解释清楚谢谢大家...
为什么说“外部和静态数组可以赋初值”??
理由是什么 其他存储类型为何不可??
本人菜鸟 请解释清楚 谢谢大家 展开
理由是什么 其他存储类型为何不可??
本人菜鸟 请解释清楚 谢谢大家 展开
2个回答
展开全部
“外部和静态数组可以赋初值”,是相对于“动态创建的数组”而言的,所谓动态创建就是用操作符new\delete申请和释放的内存。
外部和静态数组可以赋初值是因为他们的内存是在【编译的】时候就开辟了的,所以可以你写代码的时候可以赋初值,编译通过了就行。
“动态创建的数组”的内存是在程序【运行时】才分配的,程序运行的时候你能写代码吗?所以当然不能赋初值!
看程序:
#include <iostream.h>
void main()
{
//动态申请内存的数组,在程序运行的时候才有内存!
int *array =new int[5]; //相当于数组array[5],但是是动态的
for (int i=0; i<5; i++)
{
array[i] = i;
}
for (i=0; i<5; i++)
{
cout<<array[i]<<" ";
}
delete[] array; //释放动态申请的内存
}
外部和静态数组可以赋初值是因为他们的内存是在【编译的】时候就开辟了的,所以可以你写代码的时候可以赋初值,编译通过了就行。
“动态创建的数组”的内存是在程序【运行时】才分配的,程序运行的时候你能写代码吗?所以当然不能赋初值!
看程序:
#include <iostream.h>
void main()
{
//动态申请内存的数组,在程序运行的时候才有内存!
int *array =new int[5]; //相当于数组array[5],但是是动态的
for (int i=0; i<5; i++)
{
array[i] = i;
}
for (i=0; i<5; i++)
{
cout<<array[i]<<" ";
}
delete[] array; //释放动态申请的内存
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询