在C语言中,字符串是存储在常量区,可读不可写。所以一下代码会输出they are equal并且会产生段错误(因为写了不能写的)。
#include <stdio.h>
int main(int argc,char *argv[])
{
char *p = "hahaha";
char *p2 = "hahaha";
if (p==p2)
printf("they are equal\n");
*p2 = 'j';
printf("%c",*p);
}
在C语言中,字符串是存储在常量区,可读不可写。所以一下代码会输出they are equal并且会产生段错误(因为写了不能写的)。
#include <stdio.h>
int main(int argc,char *argv[])
{
char *p = "hahaha";
char *p2 = "hahaha";
if (p==p2)
printf("they are equal\n");
*p2 = 'j';
printf("%c",*p);
}