C++函数里面不能嵌套函数

int main(void)
{
    int a = 1;
    int b = 2;
    
    
    void f(void)
    {
        a = b;
        b = a;
        printf("a:%d, b:%d\n",a,b);
    }

    f();

    return 0;
}

上面的代码中, main函数中嵌套了 f 函数的定义,这种做法是不支持的,因为作用域是在编译期间确定的,而不是在运行期间。f 函数所在父作用域是全局环境而不是main函数,不能访问到main中的所有变量,应该理解为 f 函数和main函数是两个完全独立的环境,能够相互的调用但是不能直接访问对方的变量;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。