小编XrM*_*XrM的帖子

指针和内存范围

我已经编程C一段时间了(但对C来说还是很新)我有时会对C处理内存的方式感到困惑.

请考虑遵循有效的C片段:

const char *string(void)
{
       /* where is this pointer variable located in the memory? */
       const char *s;

       /* where is this text data located in the memory? */
       /* and when the program allocates memory for it?  */
       s = "Hello, World";

       return s;
}

int main(void)
{
    printf( "%s", string() );

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在问记忆中究竟发生了什么?指针变量's'不是局部变量,或者指针变量存储在内存中的位置.另外文本常量"Hello,World"存储在内存中(这不是被认为是函数返回后无法访问的局部变量)吗?

基本上什么样的变量/数据被认为是在函数的"局部"范围内(在函数返回后不再可访问)?

我希望你明白我想说的话:D ..我想我有很多关于编译器和可执行文件的知识,所以请随意赐教!

c memory variables pointers local

7
推荐指数
1
解决办法
3309
查看次数

标签 统计

c ×1

local ×1

memory ×1

pointers ×1

variables ×1