在函式中定義了變數,如何在另函式使用這個變數

2021-03-10 22:13:00 字數 2526 閱讀 1844

1樓:幻の上帝

c/c++中,函式體內定義的變數具有函式作用域,無法在外部使用這個變數本身。由於版這種定義式在棧記憶體分

權配空間,變數一旦被建立,函式結束後就會被自動銷燬,因此也稱為自動(auto)變數。

如果要在多個函式中共享變數,那麼可以使用作用域為全域性/編譯單元的靜態變數。這些變數定義後,在程序開始時自動建立,程序結束時自動銷燬。

例如int a = 2;

static int b = 7;

int f()

int g()

另外一種間接的方案是,用自動變數定義指標,然後用指標指向malloc/new方式獲得的堆空間變數,堆空間中的變數是全域性的,且需要手動釋放空間。

ps.注意用extern宣告的變數只是宣告,沒有被定義。如果整個工程中的檔案都沒有另外定義這些變數的話,編譯器可以編譯通過但連結器會報錯。

====

[原創回答團]

2樓:匿名使用者

這顯然是很困難的,除非你在第一個函式中呼叫第二個函式,並且給它傳了按引用傳遞的引數;否則就必須設定為全域性變數了

3樓:匿名使用者

在函式所在檔案中用extern宣告一下就行。

如定義int val;

要用前,宣告一下

extern int val;

4樓:笑熬將胡

如果兩個函式是在同一個檔案的話,在兩個函式定義前,定義這個變數就行了。

5樓:

具體語句得看你用的何種語言,反正就是使用時宣告它是全域性變數就行

python中是如何實現將一個函式中定義的變數在另一個函式中改變其值的

6樓:wxc一塊錢

python用列表名給變數賦值時給的是地址,就像c裡指標一樣。想要實現傳值用copy包

c++工程中如何在一個檔案中呼叫另一個檔案中的變數

7樓:小丁創業

實現的bai方法和操作步驟如du下:

1、首先, c++函式也存zhi儲在記憶體中,因此可以使用dao指標訪問內函式地址,如下圖

容所示,然後進入下一步。

2、其次,完成上述步驟後,宣告函式指標。該方法類似於函式原型。 以下是函式原型,如下圖所示,然後進入下一步。

3、接著,完成上述步驟後,在程式中宣告瞭一個函式指標,指標型別為整數,如下圖所示,然後進入下一步。

4、然後,完成上述步驟後,要獲取函式的地址,只需使用函式名稱即可,如下圖所示,然後進入下一步。

5、隨後,完成上述步驟後,使用函式指標來呼叫函式。與普通指標類似,可以使用(* fq)間接呼叫所指向的函式,如下圖所示,然後進入下一步。

6、最後,完成上述步驟後,在c++中,還可以使用函式指標,如函式名稱,如下圖所示。這樣,問題就解決了。

8樓:time大叔vs蘿莉

當專案中只有兩個檔案時:test_1.cpp 和 test_2.cpp

test_1.cpp:static int g_nnum;//在此檔案中定義一個全域性,但區域性可見的變數內,也就是static變數

//static看下

容最下方註釋

該檔案只需這一句**,不需要其他**,當然,你也可以新增其他**test_2.cpp://包含test_1.

cpp的頭,由於我們需要用到該檔案的全域性變數#include "test_1.cpp"

int main()

注:這裡涉及到static,static修辭一個區域性變數時,該變數的生命週期是全域性的,但可見性使區域性的,且工程中該值唯一;修辭全域性變數時,該變數生命週期全域性的,可見性也是全域性的,且工程中該值唯一;當修辭函式時,該函式全域性可見;

static關鍵字網上有很多大神講解過,我說的可能不是很詳細,可以自己去查一下。

9樓:匿名使用者

在b.cpp眉頭位置加入:#include "a.h",之後就可以在b.cpp中呼叫

10樓:匿名使用者

個人抄覺得famince的使用的方法不bai太好。

1. 假如你在a.cpp中有

du個變數的定義

int a = 0;

2. 在b.cpp中引用zhi,需要新增

extern int a;

這樣你dao就可以使用了。extern的作用是擴充套件a的作用域。

11樓:匿名使用者

或者用指標,再在另一個cpp中定義一個該類的指標,這樣來呼叫

12樓:匿名使用者

1:在a.h中:

extern宣告該變數,

2:在a.cpp中(包含a.h標頭檔案):

初始化,以及修改變數

3:在b.cpp中包含a.h標頭檔案,就可以使用,以此類推

13樓:匿名使用者

你可以看看extern

C 如何在區域性函式中改變定義的全域性變數的值

如果是 外部變數 那要宣告一下 這個變數。如int a定義在test1.cpp中 但是要在test2.cpp fun函式體內修改 那麼要在test2.cpp檔案fun函式前面這樣宣告 extern int a 這樣 就可以在fun函式內修改這個變數了 另外含static 關鍵字的全域性靜態變數 只有...

python3 8裡可以在函式中定義變數嗎

flag 0是全域性變數,可以用在函式外,也可以用在函式內,如果你是函式內定義,則外面的if flag會訪問不到而報錯。話說,你的while是不是少了一個break python中函式外定義的變數在函式內可以使用嗎 你寫的只是引用,也可以說讀取是可以的,但不能修改。比如這樣寫,外面的i 仍然 0 嚴...

如何在函式fx的定義域中,判斷這個函式的週期性,連續

若f x f x t 則週期是t,若limx x0 limx x0 則f x 在x0連續 單調性要具體看情況 如何判斷一個函式在某個區間的單調性 函式單調性的定義是我們判斷函式單調性的主要依據。一般地,設函式f x 的定義域為i,如果對於定義域 i內的某個區間d上的任意兩個自變數的值x1,x2,當x...