久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

c語言的函數(shù)類型說明符 c語言函數(shù)的定義格式

C語言函數(shù)定義和說明的格式

你要的是何時說明吧

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)恩平免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

printf 格式說明符;

%c --字符

%d --十進制整數(shù)

%i --同%d

%e --以科學(xué)計數(shù)法表示浮點數(shù)(指數(shù)部分以e表示)

%E --以科學(xué)計數(shù)法表示浮點數(shù)(指數(shù)部分以E表示)

%f --浮點數(shù)

%g --在%e和%f表示中選取擇短的一種

%G --在%E和%f表示中選取擇短的一種

%o --無符號八進制整數(shù)

%s --字符串

%u --無符號整數(shù)

%x --無符號十六進制(小寫x)整數(shù)

%X --無符號十六進制(大寫X)整數(shù)

%p --輸出指針內(nèi)容

%n --顯示至此printf已輸入的字符數(shù)

%% --顯示百分號

scanf 格式說明符;

%c --讀字符

%d --讀整數(shù)

%i --同%d

%e --讀浮點數(shù)

%f --讀浮點數(shù)

%g --讀浮點數(shù)

%o --讀八進制數(shù)

%s --讀字符串

%x --讀十六進制整數(shù)

%p --讀指針

%n --至此已讀入的字符數(shù)

%u --讀無符號整數(shù)

%[] --搜索字符集合

什么是C語言函數(shù)(9)

extern int x,y;   說明x,y為外部整型變量

下面分別介紹以上四種存儲類型:

一、自動變量的類型說明符為auto。

這種存儲類型是C語言程序中使用最廣泛的一種類型。C語言規(guī)定, 函數(shù)內(nèi)凡未加存儲類型說明的變量均視為自動變量, 也就是說自動變量可省去說明符auto。 在前面各章的程序中所定義的變量凡未加存儲類型說明符的都是自動變量。例如:

{ int i,j,k;

char c;

……

}等價于: { auto int i,j,k;

auto char c;

……

}

自動變量具有以下特點:

1. 自動變量的作用域僅限于定義該變量的個體內(nèi)。在函數(shù)中定義的自動變量,只在該函數(shù)內(nèi)有效。在復(fù)合語句中定義的自動變量只在該復(fù)合語句中有效。 例如:

int kv(int a)

{

auto int x,y;

{ auto char c;

} /*c的作用域*/

……

} /*a,x,y的作用域*/

2. 自動變量屬于動態(tài)存儲方式,只有在使用它,即定義該變量的函數(shù)被調(diào)用時才給它分配存儲單元,開始它的生存期。函數(shù)調(diào)用結(jié)束,釋放存儲單元,結(jié)束生存期。因此函數(shù)調(diào)用結(jié)束之后,自動變量的值不能保留。在復(fù)合語句中定義的自動變量,在退出復(fù)合語句后也不能再使用,否則將引起錯誤。例如以下程序:

main()

{ auto int a,s,p;

printf("\ninput a number:\n");

scanf("%d",a);

if(a0){

s=a+a;

p=a*a;

}

printf("s=%d p=%d\n",s,p);

}

{ auto int a;

printf("\ninput a number:\n");

scanf("%d",a);

if(a0){

auto int s,p;

s=a+a;

p=a*a;

}

printf("s=%d p=%d\n",s,p);

}

s,p是在復(fù)合語句內(nèi)定義的自動變量,只能在該復(fù)合語句內(nèi)有效。而程序的第9行卻是退出復(fù)合語句之后用printf語句輸出s,p的值,這顯然會引起錯誤。

3. 由于自動變量的作用域和生存期都局限于定義它的個體內(nèi)( 函數(shù)或復(fù)合語句內(nèi)), 因此不同的個體中允許使用同名的變量而不會混淆。 即使在函數(shù)內(nèi)定義的自動變量也可與該函數(shù)內(nèi)部的復(fù)合語句中定義的自動變量同名。例5.14表明了這種情況。

[例5.14]

main()

{

auto int a,s=100,p=100;

printf("\ninput a number:\n");

scanf("%d",a);

if(a0)

{

auto int s,p;

s=a+a;

p=a*a;

printf("s=%d p=%d\n",s,p);

}

printf("s=%d p=%d\n",s,p);

}

本程序在main函數(shù)中和復(fù)合語句內(nèi)兩次定義了變量s,p為自動變量。按照C語言的規(guī)定,在復(fù)合語句內(nèi),應(yīng)由復(fù)合語句中定義的s,p起作用,故s的值應(yīng)為a+ a,p的值為a*a。退出復(fù)合語句后的s,p 應(yīng)為main所定義的s,p,其值在初始化時給定,均為100。從輸出結(jié)果可以分析出兩個s和兩個p雖變量名相同, 但卻是兩個不同的變量。

4. 對構(gòu)造類型的自動變量如數(shù)組等,不可作初始化賦值。

二、外部變量外部變量的類型說明符為extern。

在前面介紹全局變量時已介紹過外部變量。這里再補充說明外部變量的幾個特點:

1. 外部變量和全局變量是對同一類變量的兩種不同角度的提法。全局變是是從它的作用域提出的,外部變量從它的存儲方式提出的,表示了它的生存期。

2. 當一個源程序由若干個源文件組成時, 在一個源文件中定義的外部變量在其它的源文件中也有效。例如有一個源程序由源文件F1.C和F2.C組成: F1.C

int a,b; /*外部變量定義*/

char c; /*外部變量定義*/

main()

{

……

}

F2.C

extern int a,b; /*外部變量說明*/

extern char c; /*外部變量說明*/

func (int x,y)

{

……

}

在F1.C和F2.C兩個文件中都要使用a,b,c三個變量。在F1.C文件中把a,b,c都定義為外部變量。在F2.C文件中用extern把三個變量說明為外部變量,表示這些變量已在其它文件中定義,并把這些變量的類型和變量名,編譯系統(tǒng)不再為它們分配內(nèi)存空間。 對構(gòu)造類型的外部變量, 如數(shù)組等可以在說明時作初始化賦值,若不賦初值,則系統(tǒng)自動定義它們的初值為0。

三、靜態(tài)變量

靜態(tài)變量的類型說明符是static。 靜態(tài)變量當然是屬于靜態(tài)存儲方式,但是屬于靜態(tài)存儲方式的量不一定就是靜態(tài)變量, 例如外部變量雖屬于靜態(tài)存儲方式,但不一定是靜態(tài)變量,必須由 static加以定義后才能成為靜態(tài)外部變量,或稱靜態(tài)全局變量。 對于自動變量,前面已經(jīng)介紹它屬于動態(tài)存儲方式。 但是也可以用static定義它為靜態(tài)自動變量,或稱靜態(tài)局部變量,從而成為靜態(tài)存儲方式。

由此看來, 一個變量可由static進行再說明,并改變其原有的存儲方式。

1. 靜態(tài)局部變量

在局部變量的說明前再加上static說明符就構(gòu)成靜態(tài)局部變量。

例如:

static int a,b;

static float array[5]={1,2,3,4,5};

靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

(1)靜態(tài)局部變量在函數(shù)內(nèi)定義,但不象自動變量那樣,當調(diào)用時就存在,退出函數(shù)時就消失。靜態(tài)局部變量始終存在著,也就是說它的生存期為整個源程序。

求C語言類型說明符

其實,這是C中的基礎(chǔ),但是若不是對C有透徹的理解,絕對回答不清楚!

推薦的參考資料:C Primer Plus ,其中有一章專門講解這個;

在理解C的存儲類說明符之前,首先要搞懂的概念有:作用域、生存周期、鏈接屬性

C中存在如下的作用域:代碼塊作用域、文件作用域

C中變量的生存周期:自動生存周期(自動變量)、靜態(tài)生存周期(靜態(tài)變量,在程序運行期間始終存在)

C中變量(函數(shù))的鏈接屬性分為:靜態(tài)連接屬性、自動鏈接屬性,由static關(guān)鍵字標志

C中的存儲類說明符實際上是上述屬性的不同組合(此處只針對變量而言):

auto 具有代碼塊作用域,自動生存周期,外部或者內(nèi)部鏈接屬性

register 具有代碼塊作用域,自動生存周期,外部或者內(nèi)部鏈接屬性

static 具有代碼塊或者文件作用域、靜態(tài)生存周期、內(nèi)部鏈接

extern 具有文件作用域(該關(guān)鍵字用于全局變量)、靜態(tài)生存周期、外部鏈接

以上措辭或有不嚴謹之處,詳情請參考參考資料()!

c語言中存儲說明符有哪幾種?

C語言中提供了存儲說明符auto,register,extern,static說明的四種存儲類別。四種存儲類別說明符有兩種存儲期:自動存儲期和靜態(tài)存儲期。其中auto和register對應(yīng)自動存儲期。具有自動存儲期的變量在進入聲明該變量的程序塊是被建立,它在該程序塊活動時存在,退出該程序塊時撤銷。

在函數(shù)內(nèi)部定義的變量成為局部變量。在某些C語言教材中,局部變量稱為自動變量,這就與使用可選關(guān)鍵字a u t o定義局部變量這一作法保持一致。局部變量僅由其被定義的模塊內(nèi)部的語句所訪問。換言之,局部變量在自己的代碼模塊之外是不可知的。切記:模塊以左花

括號開始,以右花括號結(jié)束。

對于局部變量,要了解的最重要的東西是:它們僅存在于被定義的當前執(zhí)行代碼塊中,即局部變量在進入模塊時生成,在退出模塊時消亡。

定義局部變量的最常見的代碼塊是函數(shù)。

整數(shù)變量x被定義了兩次,一次在func1()中,一次在func2()中。func1()和func2()中的x互不相關(guān)。其原因是每個x作為局部變量僅在被定義的塊內(nèi)可知。

語言中包括了關(guān)鍵字auto,它可用于定義局部變量。但自從所有的非全局變量的缺省值假定為auto以來,auto就幾乎很少使用了,

C語言中寫子函數(shù)時候怎么確定子函數(shù)類型

函數(shù)定義的一般形式 1.無參函數(shù)的一般形式 類型說明符 函數(shù)名() { 類型說明 語句 } 其中類型說明符和函數(shù)名稱為函數(shù)頭。 類型說明符指明了本函數(shù)的類型,函數(shù)的類型實際上是函數(shù)返回值的類型。 該類型說明符與第二章介紹的各種說明符相同。 函數(shù)名是由用戶定義的標識符,函數(shù)名后有一個空括號,其中無參數(shù),但括號不可少。{} 中的內(nèi)容稱為函數(shù)體。在函數(shù)體中也有類型說明, 這是對函數(shù)體內(nèi)部所用到的變量的類型說明。在很多情況下都不要求無參函數(shù)有返回值, 此時函數(shù)類型符可以寫為void。 我們可以改為一個函數(shù)定義: void Hello() { printf ("Hello,world \n"); }  這里,只把main改為Hello作為函數(shù)名,其余不變。Hello 函數(shù)是一個無參函數(shù),當被其它函數(shù)調(diào)用時,輸出Hello world字符串。 2.有參函數(shù)的一般形式 類型說明符 函數(shù)名(形式參數(shù)表) 型式參數(shù)類型說明 { 類型說明 語句 } 有參函數(shù)比無參函數(shù)多了兩個內(nèi)容,其一是形式參數(shù)表, 其二是形式參數(shù)類型說明。在形參表中給出的參數(shù)稱為形式參數(shù), 它們可以是各種類型的變量, 各參數(shù)之間用逗號間隔。在進行函數(shù)調(diào)用時,主調(diào)函數(shù)將賦予這些形式參數(shù)實際的值。 形參既然是變量,當然必須給以類型說明。例如,定義一個函數(shù), 用于求兩個數(shù)中的大數(shù),可寫為: int max(a,b) int a,b; { if (ab) return a; else return b; } 第一行說明max函數(shù)是一個整型函數(shù),其返回的函數(shù)值是一個整數(shù)。形參為a,b。第二行說明a,b均為整型量。 a,b 的具體值是由主調(diào)函數(shù)在調(diào)用時傳送過來的。在{}中的函數(shù)體內(nèi), 除形參外沒有使用其它變量,因此只有語句而沒有變量類型說明。 上邊這種定義方法稱為“傳統(tǒng)格式”。 這種格式不易于編譯系統(tǒng)檢查,從而會引起一些非常細微而且難于跟蹤的錯誤。ANSI C 的新標準中把對形參的類型說明合并到形參表中,稱為“現(xiàn)代格式”。 例如max函數(shù)用現(xiàn)代格式可定義為: int max(int a,int b) { if(ab) return a; else return b; } 現(xiàn)代格式在函數(shù)定義和函數(shù)說明(后面將要介紹)時, 給出了形式參數(shù)及其類型,在編譯時易于對它們進行查錯, 從而保證了函數(shù)說明和定義的一致性。例1.3即采用了這種現(xiàn)代格式。 在max函數(shù)體中的return語句是把a(或b)的值作為函數(shù)的值返回給主調(diào)函數(shù)。有返回值函數(shù)中至少應(yīng)有一個return語句。 在C程序中,一個函數(shù)的定義可以放在任意位置, 既可放在主函數(shù)main之前,也可放在main之后。例如例1.3中定義了一個max 函數(shù),其位置在main之后, 也可以把它放在main之前。 修改后的程序如下所示。 int max(int a,int b) { if(ab)return a; else return b; } void main() { int max(int a,int b); int x,y,z; printf("input two numbers:\n"); scanf("%d%d",x,y); z=max(x,y); printf("maxmum=%d",z); } 現(xiàn)在我們可以從函數(shù)定義、 函數(shù)說明及函數(shù)調(diào)用的角度來分析整個程序,從中進一步了解函數(shù)的各種特點。程序的第1行至第5行為max函數(shù)定義。進入主函數(shù)后,因為準備調(diào)用max函數(shù),故先對max函數(shù)進行說明(程序第8行)。函數(shù)定義和函數(shù)說明并不是一回事,在后面還要專門討論。 可以看出函數(shù)說明與函數(shù)定義中的函數(shù)頭部分相同,但是末尾要加分號。程序第12 行為調(diào)用max函數(shù),并把x,y中的值傳送給max的形參a,b。max函數(shù)執(zhí)行的 結(jié)果 (a或b)將返回給變量z。最后由主函數(shù)輸出z的值。 函數(shù)調(diào)用的一般形式前面已經(jīng)說過,在程序中是通過對函數(shù)的調(diào)用來執(zhí)行函數(shù)體的,其過程與其它語言的子程序調(diào)用相似。C語言中, 函數(shù)調(diào)用的一般形式為: 函數(shù)名(實際參數(shù)表) 對無參函數(shù)調(diào)用時則無實際參數(shù)表。 實際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類型數(shù)據(jù)及表達式。 各實參之間用逗號分隔。'Next of Page在C語言中,可以用以下幾種方式調(diào)用函數(shù): 1.函數(shù)表達式 函數(shù)作表達式中的一項出現(xiàn)在表達式中,以函數(shù)返回值參與表達式的運算。這種方式要求函數(shù)是有返回值的。例如: z=max(x,y)是一個賦值表達式,把max的返回值賦予變量z。'Next of Page 2.函數(shù)語句 函數(shù)調(diào)用的一般形式加上分號即構(gòu)成函數(shù)語句。例如: printf ("%D",a);scanf ("%d",b);都是以函數(shù)語句的方式調(diào)用函數(shù)。 3.函數(shù)實參 函數(shù)作為另一個函數(shù)調(diào)用的實際參數(shù)出現(xiàn)。 這種情況是把該函數(shù)的返回值作為實參進行傳送,因此要求該函數(shù)必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調(diào)用的返回值又作為printf函數(shù)的實參來使用的。在函數(shù)調(diào)用中還應(yīng)該注意的一個問題是求值順序的問題。 所謂求值順序是指對實參表中各量是自左至右使用呢,還是自右至左使用。 對此, 各系統(tǒng)的規(guī)定不一定相同。在3.1.3節(jié)介紹printf 函數(shù)時已提 到過,這里從函數(shù)調(diào)用的角度再強調(diào)一下。 看例5.2程序。 void main() { int i=8; printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--); } 如按照從右至左的順序求值。例5.2的運行結(jié)果應(yīng)為: 8 7 7 8 如對printf語句中的++i,--i,i++,i--從左至右求值,結(jié)果應(yīng)為: 9 8 8 9 應(yīng)特別注意的是,無論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實參表中實參的順序相同。由于Turbo C現(xiàn)定是自右至左求值,所以結(jié)果為8,7,7,8。上述問題如還不理解,上機一試就明白了。函數(shù)的參數(shù)和函數(shù)的值 一、函數(shù)的參數(shù) 前面已經(jīng)介紹過,函數(shù)的參數(shù)分為形參和實參兩種。 在本小節(jié)中,進一步介紹形參、實參的特點和兩者的關(guān)系。 形參出現(xiàn)在函數(shù)定義中,在整個函數(shù)體內(nèi)都可以使用, 離開該函數(shù)則不能使用。實參出現(xiàn)在主調(diào)函數(shù)中,進入被調(diào)函數(shù)后,實參變量也不能使用。 形參和實參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調(diào)用時, 主調(diào)函數(shù)把實參的值傳送給被調(diào)函數(shù)的形參從而實現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。 函數(shù)的形參和實參具有以下特點: 1.形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時, 即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。 函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。 2.實參可以是常量、變量、表達式、函數(shù)等, 無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實參獲得確定值。 3.實參和形參在數(shù)量上,類型上,順序上應(yīng)嚴格一致, 否則會發(fā)生“類型不匹配”的錯誤。 4.函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實參中的值不會變化。例5.3可以說明這個問題。 void main() { int n; printf("input number\n"); scanf("%d",n); s(n); printf("n=%d\n",n); } int s(int n) { int i; for(i=n-1;i=1;i--) n=n+i; printf("n=%d\n",n); } 本程序中定義了一個函數(shù)s,該函數(shù)的功能是求∑ni=1i 的值。在主函數(shù)中輸入n值,并作為實參,在調(diào)用時傳送給s 函數(shù)的形參量n( 注意,本例的形參變量和實參變量的標識符都為n, 但這是兩個不同的量,各自的作用域不同)。 在主函數(shù)中用printf 語句輸出一次n值,這個n值是實參n的值。在函數(shù)s中也用printf 語句輸出了一次n值,這個n值是形參最后取得的n值0。從運行情況看,輸入n值為100。即實參n的值為100。把此值傳給函數(shù)s時,形參 n 的初值也為100,在執(zhí)行函數(shù)過程中,形參n的值變?yōu)?050。 返回主函數(shù)之后,輸出實參n的值仍為100。可見實參的值不隨形參的變化而變化。

本文名稱:c語言的函數(shù)類型說明符 c語言函數(shù)的定義格式
網(wǎng)站網(wǎng)址:http://www.sd-ha.com/article32/docjgsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)做網(wǎng)站、網(wǎng)站導(dǎo)航ChatGPT、靜態(tài)網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營