为什么数组是常量

来源:互联网 发布:情侣旅行后必分手知乎 编辑:程序博客网 时间:2024/04/28 15:12

//---指针与数组的区别-----------------

/*************看下面代码**************
//在ANSI C 中,初始化指针时所创建的字符串常量被定义为只读
char *str = "hello";//不能被修改
str[0]='r';          //未定义的行为 ---在编译时,必须有左值的地址
cout<< str<<endl;    // 运行时报异常
**************************************/

/**************如下修改***************
char str[] = "hello";
str[0]='r';         
cout<< str<<endl;
*************************************/

心得:
--------------------------------------
数组名为什么是常量?
举个例子:
char array1[] = "test1";
char array2[] = "test2";
编译阶段,array1 已经被分了一个具体地址,假如是0x666666;
array2的地址是0x44444;
你会这样做吗:0x666666 = 0x44444;
显然不会,所以array1和array2都是有夫之妇,少打主意了
------------------------------------- 

原创粉丝点击