求解释,关于字符串何时分配空间
和人讨论字符串的问题,自己写代码测试的时候发现个问题程序代码:
#include<stdio.h> #include<string.h> main(){ char a[]="abcdefg"; char b[]="xyz"; strcpy(a,b); printf("%s\n%s",a,b); }这段代码没问题
程序代码:
#include<stdio.h> #include<string.h> main(){ char *a="abcdefg"; char *b="xyz"; strcpy(a,b); printf("%s\n%s",a,b); }这段代码却会出错,这是不是说明在定义字符指针时直接用字符串初始化,这个字符串没有分配空间啊,可是如果没有分配空间它是怎么存储的呢?