char *s;s="beijing";为什么是对的char *s;s={"beijing"};为什么是错的?

如题 谢谢!

char *s;s="beijing"这样系统会在栈里面开辟一个空间,里面放的内容是"beijing",而s指向它的首地址;char *s;s={"beijing"};这样写有两个问题,第一,由于s只是一个指针,它只能指向一个地址,但是这个地址还没有分配内存空间。二,只种写法只能用于字符数组的初始化,如char s[] ={"beijing"};
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-23
char *s ,s是一个char指针变量
s="beijing"是将字符串的首地址赋值给s
{"beijing"}则用于字符数组的赋值,比如
char s[10] = {"beijing"};
char *s1;
s1=s;
第2个回答  2010-08-24
C语言就是这么规定的,没有为什么。
第3个回答  2010-08-23
char *s;s="beijing";表示指向"beijing"首地址,而后面的不是
相似回答