字符串指针修改问题

来源:互联网 发布:mac shell脚本编写 编辑:程序博客网 时间:2024/05/17 23:38

字符串的定义方式有两种,直接先上代码:

第一种:

char num[20] = "hello";*num = '0';     //可行num[1] = '0';   //可行cout<<num<<endl;</span>

第二种:

char* num = "hello";*num = '0';     //错误num[1] = '0';   //错误cout<<num<<endl;</span>
对于第一种方式:

char w[] = "hello";

"hello"保存在栈空间数组里. 数组名为w, 函数名为数组的首地址.
可以通过w[i]='a', 或*(w+i)='a'的形式来修改数组内容.

对于第二种方式:

char *m = "hello";

"hello"保存在文字常量区,该数据不能修改,默认有只读属性.
由指针m指向. 不能通过指针m来修改此值.

0 0