接前一篇的内容,C++中数组在内存中也有静态分配和动态分配的区别。静态数组建立的方式为:A a[],它在栈上分配空间;动态方式是使用new,malloc在堆上分配。
数组要么在静态存储区被创建(如全局数组),要么在栈或堆上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。看下例:
1 #include<iostream> 2 using namespace std; 3 void test() 4 { 5 char ch[]="hello"; 6 ch[0]='H'; 7 char*p="world"; 8 p[0]='W';//出错 9 cout<<ch<<endl; 10 cout<<p<<endl; 11 } 12 int main() 13 { 14 test(); 15