在当前范围中无法访问的变量C
问题描述:
我听说过当前范围中无法访问的活动变量的概念。这三个例子我能想到的把我的头顶部有:在当前范围中无法访问的变量C
ptr = malloc(size * sizeof(ptr_type); ptr = different_ptr;
,调用函数而不再在范围内的静态变量,或
不在范围内的文件中的全局变量,它不是外部变量。
我对此有两个问题。我理解这个概念吗?如果我这样做,标准C中还有其他的例子吗?
答
是的,你似乎准确地理解了这个概念。
-
嵌套范围:
void pointless(int x) { int y = x; if (y > 0) { int x = y + 1; // This x means the argument is out of scope (hidden) if (x > 10) { int y = x - 10; // This y hides the previous y printf("%d %d\n", x, y); } } }
这不是很好的代码,但有时代码生成少做一些毫无意义的东西,但使用嵌套变量声明有点类似。
我想你可以在所有程序中添加一个调用你的:) – paulsm4 2013-02-28 05:43:25
以上堆栈变量我不知道第一个真正重要的,因为'ptr'还是它只是指向别处的变量。那里无法访问的内容实际上只是内存位置,没有变量代表它。 – 2013-02-28 05:46:29
不在范围内的文件? – perreal 2013-02-28 06:02:16