指针数组,字符数组----一个很有趣的小问题

#include<iostream>
using namespace std;
void main()
{
char p[]="yang";//或者换成这个char *p="yang";

p[0]='L';
cout<<p<<endl;
}

哪个有问题?为什么


经过和小庞同学的讨论,得出:

首先,数组初始化是从静态存储区把一个字符串复制给数组,而指针初始化只是复制字符串的地址。

所以,"yang"在静态存储区的常量区存放,char p[]="yang"只是把它复制到自己的P内存中,此时可以修改读取;而char *p="yang";只是把指针指向了常量区,此时不允许修改,只能读取

 
 

你可能感兴趣的:(编程,c)