【问题标题】:what is the difference between outside the main function and inside?主函数外部和内部有什么区别?
【发布时间】:2020-06-17 17:47:57
【问题描述】:

所以我从其他地方看到了一个程序,并且声明在主函数之外。 就像这段代码:

#include<iostream>
using namespace std;
int num1, num2;
int *ptr1 = &num1, *ptr2 = &num2;
char operation, answer;
char *ptrop = &operation;

int main(){

}

但我现在使用的是这样的主函数内部:

#include<iostream>
using namespace std;
int main(){
    int num1, num2;
    int *ptr1 = &num1, *ptr2 = &num2;
    char operation, answer;
    char *ptrop = &operation;

那么和它有什么区别呢?

【问题讨论】:

  • 在任何函数或类范围之外,该变量具有全局范围。要了解差异,请添加一个函数并尝试使用它们。

标签: c++ function main


【解决方案1】:

在第一种情况下,变量和指针可以从文件中的所有其他函数访问(即它具有全局范围),而在第二种情况下,它只能从 main 中访问。

我给你举个小例子。

本地到主要,

#include <iostream>

void fun();

int main(void) {
  int x;
  fun();
  return 0;
}

void fun() {
  x = 1; // compiler error: x not declared in this scope
}

全球,

#include <iostream>

void fun();

int x;
int main(void) {
  fun();
  return 0;
}

void fun() {
  x = 1; // compiles as x declared globally
}

【讨论】:

  • 谢谢@newbie :)
【解决方案2】:

在main 函数之外声明的所有变量都将具有全局范围和静态存储持续时间。如果未提供存储说明符,则在 main 中声明的变量将具有自动存储持续时间(在堆栈上分配),并且仅在 main 中可见。

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 2014-09-19
    • 2018-07-17
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多