关于程序运行时的数据存放问题

我这里有段c代码

main() 

{ 
    int b; 

    char s[] = "abc"; 

    char *p2;  

    char *p3 = "123456"; 

    static int c =0;

    p1 = (char *)malloc(10); 

    p2 = (char *)malloc(20); 

    strcpy(p1, "123456"); 
} 

我想知道 char *p3 = “123456”中的“123456”是存储在文字常量区还是和p3一起存储在栈区。请赐教!

阅读 1.9k
2 个回答

常量区,属于常量字符串。

数据储存:
java中分为堆、栈、方法区、常量池
堆存放创建出的对象,
栈存放对象的句柄(引用)、方法中的局部变量。
方法区:存放加载的类信息、静态方法、变量、常量、常量字符串等。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题