當前位置:首頁 » 服務存儲 » 存儲函數的參數只能是什麼類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

存儲函數的參數只能是什麼類型

發布時間: 2023-05-07 11:48:22

㈠ 函數的參數類型有哪些各有什麼特點

參數冊搭類型一般可分為:基本數據類型 和 類類型
基本數據類型包括 像 int double boolean等 基本類型,特點是比較單一,如果多個需要寫多個參數
類類型 主要是以孫遲一個已經定義好的類來則姿李做參數,其中可以包含多個屬性,有利於數據的封裝,參數的個數也大大減少

c語言中,函數的隱含存儲類別及形參的默認存儲類別分別是

c語言中,函數的隱含存儲類別是extern
形參的默認存儲類別是auto

㈢ C語言中,實參的隱含存儲類型是 形參的隱含存儲類型是 A、auto B、static C、extern D、register

答案都選A:上面幾位胡說霸道。
不是static 形參存儲類型只有兩種可能,一是auto類型,而是register類型。我給你細細解說
auto 就是堆棧存儲 而register的是cpu內部寄存器存儲
具體函數的形參採用那種存儲方法,這和函數的「調用規則(calling convention)」有關。
調用規則主要設計參數的傳遞,入棧順序,寄存器傳參,函數返回值的存儲和清棧者,調用規則主要有 cdecl stdcall thiscall fastcall等等。棧是函數調用必需的數據結構。你可以在函數聲明是註明函數的調用規則:如 int cdecl add (int a,int b) 。 注意函數有默認的調用規則,所以你再寫程序時,沒有必要註明調用規則。你此外還可以添加編譯選項修改調用規則。
cdecl : (c/c++語言默認的調用規則):堆棧傳參參數,因此是auto類型。
stdcall :有叫做pascal,WINAPI,這個調用規則出現在windows的API函數中。它也採用堆棧傳遞參數。
thiscall:類中的函數的調用方式:參數傳遞和編譯器有關 Windows VC中 this指針用ECX寄存器存儲,而unix gcc中 this用棧存儲。其他參數也是用棧存儲。
fastcall:用寄存器存儲部分參數加快函數調用,其他參數用棧存儲。
所以,沒有隱含的存儲類型,形參的存儲類型和調用規則有關。但是如果真要學究般的考慮這個問題,則答案選A,因為C語言函數的默認調用方式是cdecl,它的參數傳遞只採用了棧,因此是auto(答案A)
而實參的存儲類型可以是A,B,C,D四種,隱含的類型(也就是你在定義變數是,不指明存儲類型)是auto(答案A)

㈣ C語言中變數的存儲類型有哪幾種,存儲方式哪幾種謝嘍

在C語言中,對變數的存儲類型說明有以下四種:

1、auto 自動變數

2、register 寄存器變數

3、extern 外部變數

4、static 靜態變數

所謂存儲類型是指變數佔用內存空間的方式,也稱為存儲方式。

變數的存儲方式可分為「靜態存儲」和「動態存儲」兩種。

1、靜態存儲變數通常是在變數定義時就在存儲單元並一直保持不變,直至整個程序結束。

2、動態存儲變數是在程序執行過程中,使用它時才分配存儲單元,使用完畢立即釋放。典型的例子是函數的形式參數,在函數定義時並不給形參分配存儲單元,只是在函數被調用時,才予以分配,調用函數完畢立即釋放。

如果一個函數被多次調用,則反復地分配、釋放形參變數的存儲單元。從以上分析可知,靜態存儲變數是一直存在的,而動態存儲變數則時而存在時而消失。

(4)存儲函數的參數只能是什麼類型擴展閱讀:

變數根據定義的位置的不同的生命周期,具有不同的作用域,作用域可分為6種:全局作用域,局部作用域,語句作用域,類作用域,命名空間作用域和文件作用域。

一、從作用域看:

1、全局變數具有全局作用域。全局變數只需在一個源文件中定義,就可以作用於所有的源文件。當然,其他不包含全局變數的定義的源文件需要用extern關鍵字再次聲明這個全局變數。

2、靜態局部變數具有局部作用域,它只被初始化一次,自從第一次被初始化直到程序運行結束一直存在,它和全局變數的區別在於全局變數對所有函數都是可見的,而靜態局部變數只對定義自己的函數體始終可見。

3、局部變數也只有局部作用域,它是自動對象(auto),它在程序運行期間不是一直存在,而是只在函數執行期間存在,函數的一次調用執行結束後,變數被撤銷,其所佔用的內存也被收回。

4、靜態全局變數也具有全局作用域,它與全局變數的區別在於如果程序包含多個文件的話,它作用於定義它文件里,不能作用到其他文件里,即被static關鍵字修飾過的變數具有文件作用域。這樣即使兩個不同的源文件都定義了相同名字的靜態全局變數,它們也是不同的變數。

二、從分配空間看:

全局變數,靜態局部變數,靜態全局變數都在靜態存儲區分配空間,而局部變數在棧里分配空間。

全局變數本身就是靜態存儲方式,靜態全局變數當然也是靜態存儲方式。這兩者在存儲方式上並無不同。這兩者的區別雖在於非靜態全局變數的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態的全局變數在各個源文件中都是有效的。

而靜態全局變數則限制了其作用域,即只在定義該變數的源文件內有效,在同一個源程序的其他源文件中不能使用它。由於靜態全局變數的作用域局限於一個源文件內,只能為該源文件內的函數公用,因此可以避免在其他源文件中引起錯誤。

1、靜態變數會放在程序的靜態數據存儲區(全局可見)中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變數和堆變數的區別。

2、變數用static告知編譯器,自己僅僅在變數的作用范圍內可見。這一點是它與全局變數的區別。

參考資料來源:網路-變數-存儲類型

㈤ C語言哪些數據類型可以作為函數參數

我是計算機專業的,當脊察初學鎮野好c語言的時候也是好為難,也有一些心得體會
語言這種東西會隨著接觸的多就自然全都通了,需要時間,慢慢來,看到你問的這些問題跟我當初好像,感覺你學的支離破散,我建議你要系統的學c語言,
我有一個c語言的教程,txt的,我可以發給你,看看很有幫助,你問這些問題,即使通了也是不透徹

函數中包含了程序的可執行代碼。每個C程序的入口和出口都位於函數main()之中。main()函數可以調用其他函數,這些函數執行完畢後程序的控制又返回到main()函數中,main()函數不能被別的函數所調用。通常我們把這些被調用的函數稱為下層(lower-level)函數。函數調用發生時,立即執行被調用的函數,而調用者則進入等待狀態,直到被調用函數執行完畢。函數可以有參數和返回值。

程序員一般把函數當作「黑箱」處理,並不關心它內部的實現細節。當然程序員也可以自己開發函數庫。
說明一點,函數這一節很重要,可以說一個程序的優劣集中體現在函數上。如果函數使用的恰當,可以讓程序看起來有條理,容易看懂。如果函數使用的亂七八糟,或者是沒有使用函數,程序就會顯得很亂,不僅讓別人無法查看,就連自己也容易暈頭轉向。可以這樣說,如果超過100行的程序中沒有使用函數,那麼這個程序一定很羅嗦(有些絕對,但也是事實)。

一、函數的定義
一個函數包括函數頭和語句體兩部分。
函數頭由下列三不分組成:
函數返回值類型
函數名
參數表
一個完整的函數應該是這樣的:
函數返回值類型 函數名(參數表)
{
語句體;
}
函數返回值類型可以是前面說到的某個數據類型、或者是某個數據類型的指針、指向結構的指針、指向數組的指針。指針概念到以後再介紹。
函數名在程序中必須是唯一的,它也遵循標識符命名規則。
參數表可以沒有也可以有多個,在函數調用的時候,實際參數將被拷貝到這些變數中。語句體包括局部變數的聲明和可執行代碼。
我們在前面其實已經接觸過函數了,如abs(),sqrt(),我們並不知道它的內部是什麼,我們只要會使用它即可。
這一節主要講解無御鉛參數無返回值的函數調用。

㈥ 函數的形參可以是什麼(實參可以是函數,變數,表達式等等。。。)

函數的形參只能是變數,變數的類型可以是我們學過的所有類型,但是類型要和實際參數相同

㈦ C語言中的實參可以是任意類型的嗎形參可以是常量、變數或表達式嗎

實參可以是常量、變數、表達式、函數等任意類型,形參只能是變數,在被定義的函數中,必須指定形參的類型。

形式參數(形參):定義函數名和函數體時需要用的參數,目的是用來接收調用該函數時傳耐胡遞的參數。

實際參數(實參):傳遞給被調用函數的值。

通俗的來講,形參就像物理計算中的公式中的符號,比如Ω,A,V等,而實參就是在計算中的實際的數值。調用過程就是實現形參與實參的結合,把實參的值通過調用傳遞給形參,相當於把具體的值代入公式進行計算。

(7)存儲函數的參數只能是什麼類型擴展閱讀:

兩者的區別:

區別1

形參只能是變數,在被定義的函數中,必須指定形參的類型。

實參可以是常量、變數、表達式、函數等,

區別2

形參:沒有確定的值

實搭哪參:無論實昌枝攔參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。

區別3

形參變數在未出現函數調用時,並不佔用內存,只在調用時才佔用。調用結束後,將釋放內存。

開辟內存存儲數據