A. c語言中,什麼是函數的值
C語言,函數是指在程序中的可執行語句,也就是執行某事的方法,比如void OnAwake(),就是讓程序來干OnAwake這件事,我是學C#的,我就用C#來給你說,C#其實函數結構和C語言差不多,不用擔心。
你說的函數值應該是帶有參數類型的函數,比如這個管理信息的函數private void ManagerInfo(string name,int age,bool sex),括弧中裡面的就是三個屬性值,拿這個為例,括弧中的三個屬性值分別代表著姓名,年齡和性別,由於性別只有兩種值,一種是男,一種是女,所以可用bool類型。
你可以這么規定
if(sex==true)
{
console.WriteLine(「男」)
}
else
{
console.WriteLine(「女」)
}
值也可以通過運算獲得
比如:
int a=0;int b=1;int num;
public void GetNum(int MyNum)
{
num=MyNum;
MyNum=a+b;
}
public void HaveNum()
{
GetNum(num);
}
B. c語言中,函數類型有幾種
一般包括字元庫函數,數學函數,目錄函數,進程函數,診斷函數,操作函數等。
字元庫函數所在函數庫為ctype.h;數學函數所在函數庫為math.h、stdio.h、string.h、float.h;目錄函數所在函數庫為dir.h、dos.h;進程函數所在函數庫為stdlib.h、process.h。
診斷函數所在函數庫為assert.h、math.h;介面子程序所在函數庫為:dos.h、bios.h;操作函數所在函數庫為string.h、mem.h;時間日期函數函數庫為time.h、dos.h。
(2)c語言函數值型擴展閱讀
C語言為一種程序設計的入門語言。由於C語言的語句中沒有提供直接計算sin或cos函數的語句,會造成編寫程序困難;但是函數庫提供了sin和cos函數,可以拿來直接調用。顯示一段文字,我們在C語言中找不到顯示語句,只能使用庫函數printf。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要,編制並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數,既可以提高程序的運行效率,又可以提高編程的質量。
C. 請舉例說明什麼是C語言函數值類型預設定義
就是定義函數的時候不執行函數類型(即函數的返回值類型),編譯器會自動默認函數類型為int,比如下面一段代碼中的函數Func
#include
<stdio.h>
Func()
{
return
1;
}
int
main()
{
printf(
"%d
",
Func()
);
return
0;
}
這條規則沒啥用,不寫明函數類型是絕對不值得提倡的~
D. C語言規定,函數返回值的類型由什麼決定
c語言規定,函數返回值的類型是由函數首部定義的類型決定。函數返回值應與首部定義的類型一致,如若不一致,則自動將返回值強制轉換為函數首部定義的類型。沒有定義類型時默認為int型。
也就是說你的函數是什麼類型,返回值就是什麼類型。
比如:
函數定義 int fun(int a,char b)
返回值就是整型
函數定義 int *fun(int a)
返回值就是基類型為整型的指針
函數定義 void fun(int a)
無返回值
(4)c語言函數值型擴展閱讀
函數可以有返回值,只要 return 就可以給出一個,不過常常不用它,有兩個原因:
1、C/C++里返回值是復制出去的,而對於大的對象,復制的代價很高;
2、有些對象是不能復制的,至少編譯器不知道怎麼復制,比如數組。
於是有了下面這樣的函數:
bool GetObj(ObjType& obj);
bool Encode(const char* src, char* dest);
用一個參數來代替返回值,而返回值只是指示函數執行是否成功。
返回一個大對象是困難的,但這個困難存在於 C 程序中,而不是 C++ 程序中。 C 函數里較少通過返回一個指針來返回對象,因為:
1、如果指針指向棧變數,毫無疑問,要麼不用這個返回值,要麼是一個錯誤;
2、如果指針指向堆變數,需要用這個函數的程序員會好好的看文檔且足夠細心會調用 free,要麼就是內存泄漏;
3、如果指針指向 static 變數,那麼用這個函數的程序員牢牢記住「下次調用這個函數以後,上次的返回值也會跟著變」。
在C++里直接返回裸指針的話,情況並不會有什麼起色,不過 C++ 有智能指針的,通常它們指向堆變數,佔用的空間和裸指針一樣大。考慮前面第一個函數,寫成:
std::auto_ptr<ObjType> GetObj();
返回值如果不要,作為臨時變數,會立即被析構,返回的對象被釋放;如果需要,就得賦值給另一個智能指針。總之不用程序員記得,編譯器會保證這個對象的釋放。
考慮第二個函數,稍微有一點麻煩,因為 auto_ptr 是不能用來持有數組的,不過,在C++的世界裡,std::string 幾乎總是比 char* 好用:
std::auto_ptr<std::string> Encode(const char* src);
最後考慮最麻煩的情況:
bool AssembleObjList(ObjType objList[], size_t length);
E. c語言 函數返回值類型怎麼用
c語言的函數的默認的返回值是int類型的,如果沒有定義返回類型,則返回類型就是int
只有定義了其它的類型,例如float
add()才是float型的,括弧裡面參數是什麼不影響返回類型
F. C語言中允許默認的函數類型是什麼
int。C語言規定:在定義函數時,若其返回值類型為int,則可以默認。
C語言函數有三類,分為外部函數、靜態函數、內聯函數,其中前兩種是C89標准支持,第三種是C99標准增加的。
1、外部函數
這類函數是默認的函數類型,基本上平時我們使用的就是這種函數,聲明有以下兩種方式,例如:
// 使用extern關鍵字,顯示聲明
extern int add(int a, int b);
// 或省略關鍵字extern,編譯器也會自動認為是extern
int add(int a, int b);
外部函數表明在當前聲明和定義的代碼文件中可以使用,也可以在其它代碼文件中可以通過#include指令包含使用,對外部的代碼可見。
2、靜態函數
這類函數其實與外部函數相對的,因為需要使用static關鍵字修飾,因此稱為靜態函數,其實就是內部函數。聲明方式如下,例如:
static int add(int a, int b);
靜態函數的作用域只能在當前聲明和定義的文件中,在其它代碼文件中無法#include使用,因此在整個程序中,特別是大型程序,有多個源代碼文件時,即使定義相同名稱的兩個靜態函數,也不會有命名和使用沖突。
3、內聯函數
是新增的特性,使用inline關鍵字聲明和定義,該類函數類似#define宏定義展開,編譯時會直接將函數定義代碼在調用的地方復制展開,這樣會減少函數調用的開銷,提高運行效率。
inline int add(int a, int b);
內聯函數適合短小的、被頻繁調用的函數,對於復雜函數,無法使用。
(6)c語言函數值型擴展閱讀:
C語言編寫注意事項:
1、const在聲明變數中起限製作用, 該限定變數的值不能被修改。
2、%運算符不能應用與float或double類型。
3、char類型轉換為int型時, 無法判斷它是signed還是unsigned.這樣其結果有可能為負數, 因此轉換時盡量指定signed和unsigned限制符。
4、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
5、三元運算符"?:" 第一個表達式的括弧不是必須的,但是由於三元表達式的優先順序非常低,我們還是將第一個表達式用()括起便於閱讀和理解。
6、C語言中可以使用遞歸 (即函數調用自身函數), 其不節省儲存器開銷也不加快執行速度, 只是使程序緊湊便於理解。
G. c語言中函數返回值的類型由什麼決定
是由你定義函數時所定義的函數的類型決定的。
也就是說函數是什麼類型,返回值就是什麼類型。
比如:
函數定義 int fun(int a,char b)。
返回值就是整型。
函數定義 int *fun(int a)。
返回值就是基類型為整型的指針。
函數定義 void fun(int a)。
無返回值。
簡介
在調用函數時,如果需要從被調函數返回一個值供主調函數使用,那麼返回值類型必須定義成非 void 型。此時被調函數中必須包含 return 語句,而且 return 後面必須要有返回值,否則就是語法錯誤。
一個函數中可以有多個 return 語句,但並不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句後的其他語句都不會執行。
H. C語言 下面函數值的類型是什麼
float 類型與整型相乘結果應該是float 型 然後再與整型相減 應該都會轉換成浮點型 再減法運算 應該是D 實在不行在機器上跑一下 看結果
I. C語言中,函數值類型的定義可以預設,此時函數值的隱含類型是
隱含類型是 int型
例如
sum(int a,int b)
{
int c;
c=a+b;
return c;
}
就等同於
int sum(int a,int b)
{
int c;
c=a+b;
return c;
}
J. C語言中函數值為整型、中整型是什麼意思
通常泛指char、short int、int、long int、long long int這五種類型(包括signed和unsigned)以及_Bool類型。當然也包括編譯器作為擴展而實現的某些整型類型。
見C11標准:
[6.2.5-4]There are five standard signed integer types, designated as signed char, short int, int, long int, and long long int. (These and other types may be designated in several additional ways, as described in 6.7.2.) There may also be implementation-defined extended signed integer types. The standard and extended signed integer types are collectively called signed integer types.
[6.2.5-6]For each of the signed integer types, there is a corresponding (but different) unsigned integer type (designated with the keyword unsigned) that uses the same amount of storage (including sign information) and has the same alignment requirements. The type _Bool and the unsigned integer types that correspond to the standard signed integer types are the standard unsigned integer types. The unsigned integer types that correspond to the extended signed integer types are the extended unsigned integer types. The standard and extended unsigned integer types are collectively called unsigned integer types.