我想知道C指针是否可以指向内部块中的值,然后在内部块结束后取消对该指针的引用?
#include <stdio.h>
int main() {
int a = 42;
int *r;
{
int b = 43;
r = &b;
}
int c = 44;
printf("%d\n", c); // Output: 44
// Is this OK?
printf("%d\n", *r); // Output: 43
return 0;
}
我得到的输出"43"是幸运的还是故意的?C语言规范是否说明了这种情况?(请注意,我不是问特定的C编译器的行为)