Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我试图定义一个指向C中字符串文字的指针,会发生什么?_C_String_Pointers_Memory_String Literals - Fatal编程技术网

如果我试图定义一个指向C中字符串文字的指针,会发生什么?

如果我试图定义一个指向C中字符串文字的指针,会发生什么?,c,string,pointers,memory,string-literals,C,String,Pointers,Memory,String Literals,比如说, char * first = "Hello World!"; 我的问题是, 字符串文本是否存储在内存中?(如果是,我猜指针first是字符串literal“Hello World”的初始元素的地址) 如果不是,那么某种随机指针值是否先存储在中 是的,字符串文本存储在内存中。C和C++标准只是说字符串文本具有静态存储持续时间,任何修改它们的尝试都会给出未定义的行为,并且具有相同内容的多个字符串文字可能共享或不共享相同的存储。p> 是字符串文本存储在内存中,通常存储在.rodata部分它

比如说,

char * first = "Hello World!";
我的问题是,

  • 字符串文本是否存储在内存中?(如果是,我猜指针
    first
    是字符串literal“
    Hello World
    ”的初始元素的地址)

  • 如果不是,那么某种随机指针值是否先存储在


  • 是的,字符串文本存储在内存中。C和C++标准只是说字符串文本具有静态存储持续时间,任何修改它们的尝试都会给出未定义的行为,并且具有相同内容的多个字符串文字可能共享或不共享相同的存储。p> 是字符串文本存储在内存中,通常存储在.rodata部分

    它取决于您的平台,由实现定义。一般情况下,如果系统上有可用的话,它会转到只读存储器。阅读更多信息。

    1。对2.没有意义,因为第一个答案是“是”。你所说的保存指针是什么意思?@RawN我认为“定义”这个词更合适@RawN我想他的意思是首先将指针存储在
    中。