簡體   English   中英

main函數中的變量可以在main外部訪問嗎?

[英]Can a variable in main function be access outside the main?

#include <stdio.h>

void foo();
int main()
{
    int b = 0;
    int a[6] = {1,2,3,4,5,6};
    foo();
    return 0;
}

void foo()
{
    //write some code to print a and b
}

我的問題是:

如何從外部獲取局部變量而不傳遞任何參數?

那不可能 您需要傳遞一個指向它的指針,以從一個函數訪問它或使其成為全局的。

您可以創建兩個全局變量並將a和b的每個值存儲在其中。 foo()創建兩個變量a和b並存儲ga和gb的值

#include <stdio.h>

void foo();
int gb,ga[6];
int main()
{
    int b = 0;
    int a[6] = {1,2,3,4,5,6};
    gb=b;
    for (int x = 0 ; x<6 ; x++)
       ga[x]=a[x];
    foo();
    return 0;
}
void foo()
{
    int a=ga;
    int b[6];
    for (int x = 0 ; x<6 ; x++)
      b[x]=gb[x];
    //now you can use a and b here
}

聲明一個全局指針,並在main內,將局部變量的地址分配給該指針,並在任何地方使用它。

不,我們不能。 我們可以公開類甚至其他功能。 正如我們主要定義的那樣,我們不能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM