函式中的變數不需要定義就可以使用嗎

2025-03-18 09:05:25 字數 3915 閱讀 2549

1樓:匿名使用者

下面是比較正式的對形參與實參的說明。。並巖賀。此之前我先說下函式呼叫時的機制, 函式呼叫的時候,編譯器一開始就會對形參進行定義和傳值,如上面那個例子中,當主函式執行到bc::

shezhi(75);時,就會呼叫bc類中的shezhi函式,呼叫時,來到void shezhi(int x) ,這個函式體,因為這是個有形參的函式,編譯器一開始就 int x;即定義x變數,然後 x = 75; (75是主函式傳過來的);再然後繼續子函式的函式體。。。所以說,不是說,形參不用定義,而是不用你再去定義,編譯器幫你定義了···還不懂就看下面的吧···形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。

形參和實參的功能是作資料傳送。發生函式呼叫時, 主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。

1.形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時, 即刻釋放所分配的記憶體單元。因此,絕派形參只有在函式內部有效。 函式呼叫結束返回主調函式後則不能再使用該形參變數。

2.實參可以是常棗瞎量、變數、表示式、函式等, 無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

3.實參和形參在數量上,型別上,順序上應嚴格一致, 否則會發生「型別不匹配」的錯誤。

4.函式呼叫中發生的資料傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

2樓:匿名使用者

x是形參,不需要定義。

只有在函式內部定義的變數才是區域性變數。。。。。這句話對麼????為什麼??

3樓:網友

只有在函式內部定義的變數才是區域性變數。這句話是不對的。

區域性變數,也稱內部變數,是指在乙個函式內部或複合語句內部定義的變數。區域性變數只在定義它的函式或複合語句範圍內有效,只能在定義它的函式或複合語句內才能使用它們。區域性變數的生存期是從函式被呼叫的時刻算起到函式返**用處的時刻結束。

4樓:安璐卡

不對,區域性變數又稱過程級變數,應該在過程中宣告(按你說的情況,若該函式出現在過程中,那麼在函式內部定義的變數也算區域性變數,但區域性變數不僅僅包括這種情況),所以這句話是錯的!

5樓:網友

這麼無聊的問題應該是考試題,嚴格來說是不對的,比如有名稱空間這種東西會限制變數的作用域,但是很多教科書裡面有這麼一句「區域性變數是指在函式內部定義的變數 作用域為定義區域性變數的函式」,所以對不對還是問你的老師比較好。

6樓:魯步凝珍

函式內的static變數儲存在靜態記憶體裡。

在自定義函式中不可以定義函式但是可以呼叫自身函式

7樓:

摘要。在自定義函式中不可以定義函式但是可以呼叫自身函式。正確。

在自定義函式中不可以定義函式但是可以呼叫自身函式。

在自定義函式中不可以定義函式但是可以呼叫自身函式。正確。

1)自定義函式中,不可以在定義新的函式(2)自定義函式中,可以呼叫函式本身,這叫做遞迴。

c年月日,反著輸出的。

選a,沒看見逗號。

剛才那個題選a,因為輸出裡有逗號。

第三題 選c

後面的一下敘述錯誤的是()選d

剩下的呢<>

4. int *

一定要加上這個*,因為返回值是整數的位址,而不是整數,所以用指標。

最後乙個是。

應該全了,您給我的,都是保證準確的。

主函式中定義的變數在子函式中是否有效?

8樓:娛樂小八卦啊

變數按儲存區域分:全域性變數、靜態全域性變數和靜態區域性變數都存放在記憶體的靜態儲存區域,區域性變數存放在記憶體的棧區。

全域性變數:在整個工程檔案內都有效;「在函式外定義的變數」,即從定義變數的位置到本原始檔結束都有效。由於同一檔案中的所有函式都能引用全域性變數的值,因此如果在乙個函式中改變了全域性變數的值, 就能影響到其他函式中全域性變數的值。

9樓:網友

無效。首先明確,子函式和呼叫這個函式的函式(相對意義上的主函式)是兩個不同的函式。

標準c/c++不支援區域性函式。函式內定義的物件的名稱具有函式作用域,有效範圍從定義處開始到函式體結束,和其它函式內的名稱無關。即使在兩個函式中各自使用相同的識別符號進行定義,也是兩個不同的名稱(c語言中可以保證是不同的物件;c++引用可能指向相同的實體),具有各自的函式作用域。

如果乙個在不同函式內表示相同實體的名稱能被引用,那麼這個名稱只能表示乙個全域性物件(c++中也可以是兩個函式所在類/名稱空間中的公共物件)。

如果是迴圈內/語句塊中定義的名稱,iso c90(不支援迴圈開頭定義)從定義處到函式體結束,iso c99/iso c++則是從定義處開始到迴圈/語句塊結束。

10樓:樂雨

如果主函式中有乙個i=5,而子函式中重新定義乙個i=2的話,在子函式中i取2。但如果子函式中沒定義i的話。i在子函式中無效,除非定義全域性變數。

11樓:劉小禎

這個怎麼可能會有效呢。

這分明就是兩個不同的函式嘛。

為什麼變數沒定義?

12樓:糖葫蘆沖沖衝

是不是你編寫**發生錯誤了,改寫一下試試看。

解釋:「was not declared in this scope」是說你這裡出現了乙個錯誤資訊,一般都是在編譯的時候遇到的。就是說你寫的識別符號在它出現的地方是未被定義的。

一般可能有這些原因導致這種錯誤:

1,忘記定義。

寫**的時候疏忽,以至於一些變數直接使用但沒有定義。只要對應定義相應的函式或變數就好了。

2,拼寫錯誤。

寫**的時候打錯了字元。看一下是不是哪個字母寫錯了,對應修改就行。

3,作用域不正確。

在超出變數和函式的作用域部分使用了該變數或函式。這時候得通過定義位置,要麼增加宣告的手段,加大變數的作用域使其包含引用位置。

函式之外定義的變數是什麼啊?

13樓:廣惠大銳逸

函式之外定義的變數是外部變數。

概念:外友改部變數是在函式外部定義的全域性變數,它的作用域是從變數的定義處開始,到本程式檔案的結尾。在此作用域內,全域性變數可為各個函式所引用。

編譯時將外部變數分配在靜態舉告和儲存區。

注意:有正盯時需要在其他檔案中使用extern來宣告外部變數,以擴充套件外部變數的作用域。

也可用static宣告外部變數,使該變數不能被其他檔案引用。static宣告後該外部變數就只能在本檔案中使用。

函式可以是自變數嗎?急!

14樓:翟沛崔長娟

可以。函式的定義是乙個或者多個自變數。

值對應同乙個拿沒因變數。

值。你舉的例子,自變數和因變數值是一一對應的,所以可以頌悶顛倒,這叫做求反函式。

在這道題中,當然也可以認為路程是自變數,時間是因變數啊消櫻納,隨著路程的遠近,花的時間也不同。

但是像y=x平方這種函式就沒有反函式,因為y的乙個值對應2個x值。

15樓:榮風公又夏

y關於x的函式主要是指兩個變數之間存在一定的數量關係,如y=x,x增加乙個單位,y也增輪枝加乙個單位;如y=2x+1,x增加乙個單位,y則增加二個單位等等。一般情況下,y是因變數,x是自變數;但這不灶扮是臘辯敏絕對的。謝謝!

16樓:乜皎司芳

轉換成x=y/40

可以說x是關於y的函式。

但是不能說函式可以是自變數,函式應該是個耐基關碼培系昌模謹式。

有沒有不需要高考就可以上的大學,有沒有不用高考就能上的大學?

有,現在社會越來越多了,就是一些培訓機構,還有一些大學,你花錢然後過個幾年給你一個文憑。都是一些什麼金融類的,管理類的,這種文憑很容易拿到,花個幾萬,過兩三年就可以了。有啊 傳 智專 修 學 院 雖 然 人 家要求 不 高 考可 以申請,但 是隻能 是 申請 他 們 選 拔 有 潛 力 的孩子 你 ...

可以只用水養不需要土的植物有哪些

養在室內的比較多,富貴竹 綠 蘿 巴西鐵 萬年青 太陽神 花葉芋 海芋 白掌 綠巨人 袖珍椰子富貴竹 綠蘿 巴西鐵三種是不需要帶根的,取其一段或一分枝插在水中即可 其他品種則需要先洗淨泥汙,而且千萬不能傷根,然後再往水裡放。除綠蘿外,其他品種水都不宜放太多,有根的淹住根部,沒根的有一寸左右淹在水裡就...

可以做直銷推廣的軟體不需要付年費有哪些

那就加入好的團隊,好的系統,教的推廣這些都是免費的 自動進人系統 啞巴,電腦盲 都可以成交 給你資料 現在有些人在做這個r幣,以直銷的模式,講解時以比特幣為參考。請問比特幣是直銷這樣推廣的嗎?不是,比特幣的市場是自發形成的,源 是開源的。r幣和比特幣沒有任何關係。r幣疑似傳銷。央視曾 過代幣傳銷。幣...