字符串常量属于静态存储类别,该字符串只会被内存存储一次,在整个程序生命周期中可见
int main(int argc, char* argv[])
{
char *p = "abcdefg";
char *p1 = "abcdefg";
char *p2 = "abc";
printf("p = %p\n",p);
printf("p1 = %p\n",p1);
printf("p2 = %p\n",p2);
printf("abcdefg = %p\n","abcdefg");
return 0;
}
当以字符数组的形式 并且初始化数组时,
现将字符串存储在静态存储区中,程序开始运行时才为该数组分配内存,此时才将字符串拷贝到数组中。
字符串有两个副本