字符串常量高频错误

当定义一个字符串常量:

char *arr = "aecd";

发现”aecd”的’b’错写成了’e’,当试图去更改的时候,程序会崩溃:

char *arr = "aecd";
arr[1] = 'b';

这是因为字符串常量存储在常量区(静态存储区),这部分区域是不允许修改的,而指针arr指向的是”aecd”的地址,并不是这个值,如下所示:


字符数组的值可以修改,例如:

char arr[] = "aecd";
arr[1] = 'b';
printf("%s\n",arr);
return 0;

内存划分出五个字节的区域来存储’a’,’e’,’c’,’d’和’\0’,每个字符占一个字节:


阅读更多
上一篇假设在n进制下,下面的等式成立,567*456 = 150216,n的值是()
下一篇Const(定义常变量)的四个重要性质
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭