真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言函數(shù)使用總結(jié),c語言函數(shù)語法

C語言函數(shù)調(diào)用的傳參方法總結(jié),Caller分配內(nèi)存,Called填充內(nèi)存

void called(int v){ v=2; }

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供汝南網(wǎng)站建設(shè)、汝南做網(wǎng)站、汝南網(wǎng)站設(shè)計、汝南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、汝南企業(yè)網(wǎng)站模板建站服務,十載汝南做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務。

void caller(){ int v=1; called(v); }

這種方式,called并不能改變caller里的v的值,因為called和caller的v分別是兩個內(nèi)存單元,因此只能單向的從caller到called傳值,而不能從called到caller返回值。

void called(int *pv) { *pv=2; }

void caller(){ int v=1; called(v); }

這種方式,called能改變caller的值,因為值的內(nèi)存由caller分配(int v=1;),而called能通過其指針改變這個內(nèi)存的內(nèi)容。

void called(int **ppv){ *ppv=malloc(sizeof(int)); }

void caller(){ int *pv=NULL; called(pv); }

這種方式,內(nèi)存單元是由called分配在heap上的,想返回其地址給caller,因此caller需要提供一個地址的內(nèi)存(int *pv=NULL;), 然后交由called去改變這個單元的值(called(pv))。需要注意的是,這個內(nèi)存不能是在called的stack中,因為一旦called結(jié)束,棧中內(nèi)存都會被銷毀,其值和地址都將無效,因而只能返回在heap中的值和地址。

總之就是記住一個宗旨,如果想通過參數(shù)來獲得返回值,需要在caller中為該返回值分配內(nèi)存單元,然后將這個內(nèi)存單元的地址傳遞給called函數(shù),called函數(shù)通過改變這個地址所指向的內(nèi)存值來返回所需。

C語言中函數(shù)的作用

C語言中的函數(shù)的作用是可以將一段經(jīng)常需要使用的代碼封裝起來,在需要使用時可以直接調(diào)用。

示例:

語言的函數(shù)定義和函數(shù)聲明

#includestdio.h

//使用函數(shù)前,需要在main函數(shù)前對使用的函數(shù)進行聲明

int getMax(int, int);

void main() {

int t=getMax(12, 21);

printf("%d\n", t);

getchar();

}

int getMax(int a, int b) {

if (a b) {

return a;

}

else {

return b;

}

}

擴展資料

scanf 函數(shù)

函數(shù)原型:int scanf(char *format [,argument,...])

功能:從標準輸入設(shè)備(一般指鍵盤)實現(xiàn)格式化輸入

返回值:成功返回讀入的數(shù)據(jù)項個數(shù)

函數(shù)參數(shù):format 格式化字符串

argument 輸入數(shù)據(jù)項的地址列表

常用格式類型參考printf函數(shù)的個格式類型

用法舉例:

從標準輸入設(shè)備中輸入一個整數(shù)到整形變量a中,輸入一個浮點數(shù)到浮點型變量b中

int a=0;

float b=0;

scanf("%d%f",a,b);

上面程序執(zhí)行后,從鍵盤輸入: 19 18.6 ,程序?qū)?19賦值給變量a, 18.6賦值給變量b 。

C語言知識總結(jié)

c語言概要

第一章、 概述

1、 c語言的基本知識

1.1、 c語言的執(zhí)行步驟

編輯-程序代碼的錄入,生成源程序*.c

編譯-語法分析查錯,翻譯生成目標程序*.obj

(語法或邏輯錯誤,從第一個開始改,變量定義,語句格式,表達式格式等)

鏈接-與其他目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe

執(zhí)行

1.2、 main函數(shù)的基本知識

main()函數(shù)的位置

c程序總是從main( )函數(shù)開始執(zhí)行

一個c程序可以包含一個主函數(shù),即main()函數(shù);也可以包含一個main()函數(shù)和若干其它函數(shù)

1.3、 c程序的結(jié)構(gòu)

函數(shù)與主函數(shù)

程序由一個或多個函數(shù)組成

必須有一個且只能有一個主函數(shù)main()

程序執(zhí)行從main開始,在main中結(jié)束,其他函數(shù)通過嵌套調(diào)用得以執(zhí)行

程序語句

C程序由語句組成

用“;”作為語句終止符

注釋

//

/* */ 為注釋,不能嵌套

不產(chǎn)生編譯代碼

1.4、c 程序書寫的規(guī)則

習慣用小寫字母,大小寫敏感

不使用行號,無程序行概念:通常一個語句占一行

可使用空行和空格

常用鋸齒形的書寫格式;同一層次結(jié)構(gòu)的語句上下對齊。

第二章、基本數(shù)據(jù)類型與運算

2.1、c程序的數(shù)據(jù)類型

注意類型和變量含義的不同(類型是固定好的名字,變量是自己起的名字)

變量占用的存儲空間

數(shù)據(jù)類型

基本類型:整型、字符型、浮點型(單精度型,雙精度型)

構(gòu)造類型:數(shù)組類型、結(jié)構(gòu)體類型

指針類型

空類型

注意基本類型賦初值的方式

基本數(shù)據(jù)類型的表示形式

整形數(shù)據(jù)

十進制:以非0數(shù)字開頭,如:123,-9,0

八進制;以0數(shù)字開頭,如:0123,067

十六進制:以0x開頭,如:0x123,0xff

實型數(shù)據(jù)

十進制:必須帶小數(shù)點,如:123.0,-9.0

指數(shù)形式;如:1.23E3,0.9e-2,5e2

字符型數(shù)據(jù)

普通字符:如:’a’,’2’,’H’,’#’

轉(zhuǎn)義字符:如:’\n’,’\167’,’\xlf,’\\’

(實現(xiàn)幾列的對齊:指定寬度。如%100\ ‘\t’制表位)

(字符串長度?!癮bc\n\t\\” strlen 6; sizeof 7)

基本數(shù)據(jù)類型的存儲長度

整型

Int 字節(jié)數(shù) 2 位數(shù) 16 數(shù)的表示范圍 -32768—32767

Short 2 16 -32768—32767

Long 4 32 -2147483648—2147483647

實型

Float 4 32 3.4e-38---3.4e38

Double 8 64 1.7e-308---1.7e308

字符型

Char 1 8 -128----127

2.2、標識符命名規(guī)則

C語言標志符命名規(guī)則

標識符有數(shù)字,字母,下劃線組成

標識符的首字符必須為字母和下劃線

標識符不能為c語言的保留字(關(guān)鍵字)

如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed

算術(shù)運算符 + - * / %

關(guān)系運算符 == = = !=

邏輯運算符 ! ||

位運算符 ~ | ^

賦值運算符 = 及其擴展賦值運算符

條件運算符 ? :

逗號運算符 ,

指針運算符 *

求字節(jié)數(shù)運算符 sizeof

強制類型轉(zhuǎn)換運算符 (類型)

分量運算符 . -

下標運算符 [ ]

其他 如函數(shù)調(diào)用運算符()

運算符的優(yōu)先級

由高到低:單目運算符,算數(shù)運算符,關(guān)系運算符,賦值運算符

說明:單目運算符:自增運算符,自減運算符,類型裝換運算符。結(jié)合方向:自右至左

如:++--I 先—i.。

算術(shù)運算 結(jié)合方向自左至右

2.3基本運算和表達式

關(guān)系表達式和邏輯表達式

(ab)(xy) (a==b)||(x==y) !=a||(ab)

Ab.a為0.不執(zhí)行b

A||b a為1.不執(zhí)行b

在 c 中邏輯運算結(jié)果:1代表“真”,0代表“假”;

判斷一個表達式是否真:0代表“假”,非0代表“真”

條件表達式 逗號表達式

如:k=5,k++

逗號值為5;k為6.

表達式1?表達式2 :表達式3

K=56 ? 1 : 0

2.4、混合運算的數(shù)據(jù)類型轉(zhuǎn)換

2/3+0.5 雙精度浮點型

第三章、順序結(jié)構(gòu)程序設(shè)計

3.1、c語句的分類

簡單語句

表達式語句 表達式+分號

空語句 只有分號的語句

復合語句 用花括號將若干語句括起來

流程控制語句

選擇語句 if ,switch

循環(huán)語句 while, do while , for

轉(zhuǎn)移語句 break ,continue ,return goto

3.2、格式輸入函數(shù)scanf

一般形式:scanf(“格式控制字符串“,地址列表);

使用scanf函數(shù)時,需要注意:

格式字符的個數(shù)必須與輸入項的個數(shù)相同,數(shù)據(jù)類型必須一一對應,非格式字符串(說明性的)要原封不動的輸入。

輸入實行數(shù)據(jù)時,可以不帶小數(shù)點,即按整型數(shù)據(jù)輸入

數(shù)值型數(shù)據(jù)與字符或字符串混合輸入時,需要注意輸入方式。

3.3、格式輸出函數(shù)printf

Printf(“格式控制字符串“,輸出列表);

指定輸出格式,由格式字符串和非格式字符串兩種組成,非格式字符串照原樣輸出。

%[標志][輸出最小寬度][.精度][長度]類型

標志:- 左對齊;+ 右對齊;

%f, %d, %c, %s

3.4、其他輸入輸出函數(shù)

Putchar getchar puts gets

第四章、選擇結(jié)構(gòu)程序設(shè)計

If選擇結(jié)構(gòu)

單分支

If(表達式)

語句

雙分支

If(表達式)

語句1

Else

語句2

多分支

If (表達式1)

語句1

Else if(表達式2)

語句2

。。。

Else if(表達式m)

語句m

Else

語句n

Switch(表達式)

{

Case 常量表達式1:語句1;break;

Case 常量表達式2:語句2;break;

。。。

Case 常量表達式m:語句m;break;

Default:語句n;break;

}

注意break的使用

第五章、循環(huán)結(jié)構(gòu)程序設(shè)計

循環(huán)三要素

初始條件 ;終止條件 ;在初始條件和終止條件間反復做某件事情(循環(huán)體)

While(表達式)

語句

Do

語句

While(表達式);

For(循環(huán)體變量賦初值;循環(huán)條件;循環(huán)變量增量)

( for( ) ; // ; 進行時間延遲。在信息交換等時用。如for(i=0,i100) ; 互相通訊的時間延遲。 Delay )

Break語句 :不能用于循環(huán)語句和switch語句之外的任何其他語句;跳出循環(huán)。

Continue語句 :跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán);跳出本次循環(huán)。

第六章、函數(shù)與編譯預處理

6.1、函數(shù)的定義和調(diào)用

類型標識符 函數(shù)名 (形式參數(shù)列表)

{ 聲明部分

語句

}

例:

Int max (int x,int y)

{int z;brZ=xy?x:y;brReturn(z);}

6.2、局部變量和全局變量

注意函數(shù)中靜態(tài)變量的定義和使用

6.3、變量的存儲類型

局部變量的存儲類型

自動變量(auto) 動態(tài)存儲

局部靜態(tài)變量(static) 靜態(tài)存儲

寄存器變量(register) 靜態(tài)存儲

全局變量的存儲類型

自動變量(auto) 動態(tài)存儲

外部變量 (extern) 靜態(tài)存儲

全局靜態(tài)變量(static )靜態(tài)存儲

Extern 外部引用

Static 不能用extern 引用。

第七章、數(shù)組

7.1、一維數(shù)組的定義和使用

特別需要注意循環(huán)體的初值,終止條件

例:

Main()

{

Int I,a[10];

For(i=0;i=9;i++)

A=I;

For(i=9;i=0;i--)

Printf(“%d”,a);

}

注意下標問題

7.2、二維數(shù)組的定義和使用

二維數(shù)組的初始化

例如:

Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};

Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};

例如:int a[3][3]={{1},{2},{3}};

是對每一行的第一列元素賦值,未賦值的元素取0

7.3、字符數(shù)組和 字符串

字符串用字符數(shù)組來處理,結(jié)束標志符 ‘\0’

如:char c[ ]={“I am happy”};

用字符串常量使字符數(shù)組初值化

Char c[ ]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’,’\0’};

第八章、指針

8.1、地址和指針的概念

Int I;

Int *i_point;

8.2、指針變量和變量的地址

操作符:*

8.3、指針和一維數(shù)組

若有定義

Int a[10];

Int *p=a;

分析下面表達式的含義:

A, a,

*(a+i), a+I,

*(p+i), p+i

A=*(a+i)=*(P+i)

a=a+i=p+i

8.4、指針與字符串

Main()

{

Char string[ ]=”I love china!”;

Printf(“%s\n”,string);

}

Main()

{ char *string=”I love china!”;

Printf(“%s\n”,string);

}

8.5、指針變量作為函數(shù)參數(shù)

形參的定義方式;實參的形式;參數(shù)的傳遞方式。

第九章、結(jié)構(gòu)體

9.1、結(jié)構(gòu)體類型和變量的定義

Struct 結(jié)構(gòu)體名

{成員列表};

Struct student

{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};

Stuct student

{char stuNO[8];brChar name[20];brChar sex;brInt age;brFloat score;brChar addr[30];br};

Struct student stu1, stu2;

9.2、結(jié)構(gòu)體變量的引用

一般形式為:

結(jié)構(gòu)體變量名.成員名

9.3、結(jié)構(gòu)體數(shù)組

結(jié)構(gòu)體數(shù)組 結(jié)構(gòu)體數(shù)組元素.成員名

指向結(jié)構(gòu)體的指針變量

(*p).成員名

p-成員名

其他

Strcpy(字符數(shù)組1,字符串2)

Strcat(字符數(shù)組1,字符數(shù)組2)

Strcmp(字符串1,字符串2)

Strlen(字符數(shù)組)

c語言 求總結(jié)字符串輸入、輸出函數(shù)使用的區(qū)別。

C語言中的輸入輸出函數(shù)總結(jié)

C語言中數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn)

(1)所謂輸入輸出是以計算機為主體而言的。

(2)本章介紹的是向標準輸出設(shè)備顯示器輸出數(shù)據(jù)的語句。

(3)在C語言中,所有的數(shù)據(jù)輸入/輸出都是由庫函數(shù)完成的。 因此都是函數(shù)語句。

(4)在使用C語言庫函數(shù)時,要用預編譯命令#include將有關(guān)“頭文件”包括到源文件中。使用標準輸入輸出庫函數(shù)時要用到 “stdio.h”文件,因此源文件開頭應有以下預編譯命令:#include stdio.h 或#include ”stdio.h”,stdio是standard input outupt的意思。

(5)考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可不加#include stdio.h 或#include ”stdio.h”

一、字符數(shù)據(jù)的輸入輸出

( 1 ) putchar 函數(shù)(字符輸出函數(shù))

putchar 函數(shù)是字符輸出函數(shù), 其功能是在顯示器上輸出單個字符。其一般形式為:putchar(字符變量).對控制字符則執(zhí)行控制功能,不在屏幕上顯示。使用本函數(shù)前必須要用文件包含命令:#includestdio.h或#include “stdio.h”

( 2 ) getchar函數(shù)(鍵盤輸入函數(shù))

getchar函數(shù)的功能是從鍵盤上輸入一個字符。其一般形式為:getchar();

通常把輸入的字符賦予一個字符變量,構(gòu)成賦值語句,如:char c; c=getchar();使用getchar函數(shù)還應注意幾個問題:

1)getchar函數(shù)只能接受單個字符,輸入數(shù)字也按字符處理。輸入多于一個字符時,只接收第一個字符。

2)使用本函數(shù)前必須包含文件“stdio.h”。

3)在TC屏幕下運行含本函數(shù)程序時,將退出TC 屏幕進入用戶屏幕等待用戶輸入。輸入完畢再返回TC屏幕。

二、格式輸入與輸出

(1)printf函數(shù)(格式輸出函數(shù))

printf函數(shù)稱為格式輸出函數(shù),其關(guān)鍵字最末一個字母f即為“格式”(format)之意。其功能是按用戶指定的格式,把指定的數(shù)據(jù)顯示到顯示器屏幕上。在前面的例題中我們已多次使用過這個函數(shù)。

(1)printf函數(shù)調(diào)用的一般形式

printf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。但作為一個特例,不要求在使用 printf 函數(shù)之前必須包含stdio.h文件。printf函數(shù)調(diào)用的一般形式為:printf(“格式控制字符串”,輸出表列),其中格式控制字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位數(shù)等。如:“%d”表示按十進制整型輸出;“%ld”表示按十進制長整型輸出;“%c”表示按字符型輸出等。非格式字符串在輸出時原樣照印,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數(shù)量和類型上應該一一對應。

***格式字符串

格式: [標志][輸出最小寬度][.精度][長度]類型

1)類型:類型字符用以表示輸出數(shù)據(jù)的類型,其格式符和意義如下表所示:

d,以十進制形式輸出帶符號整數(shù)(正數(shù)不輸出符號)

o,以八進制形式輸出無符號整數(shù)(不輸出前綴0)

x或X ,以十六進制形式輸出無符號整數(shù)(不輸出前綴Ox)

u,以十進制形式輸出無符號整數(shù)

f,以小數(shù)形式輸出單、雙精度實數(shù)

e或E,以指數(shù)形式輸出單、雙精度實數(shù)

g或G,以%f或%e中較短的輸出寬度輸出單、雙精度實數(shù)

c,輸出單個字符

s,輸出字符串

2)標志:標志字符為-、+、#、空格四種,其意義下表所示:

-,結(jié)果左對齊,右邊填空格

+,輸出符號(正號或負號)

空格,輸出值為正時冠以空格,為負時冠以負號

#,對c,s,d,u類無影響;對o類,在輸出時加前綴o;對x類,在輸出時加前綴0x;對e,g,f 類當結(jié)果有小數(shù)時才給出小數(shù)點

3)輸出最小寬度:用十進制整數(shù)來表示輸出的最少位數(shù)。若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸出,若實際位數(shù)少于定義的寬度則補以空格或0。

4)精度:精度格式符以“.”開頭,后跟十進制整數(shù)。本項的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù);如果輸出的是字符,則表示輸出字符的

個數(shù);若實際位數(shù)大于所定義的精度數(shù),則截去超過的部分。

5.長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。

(2)scanf函數(shù)(格式輸入函數(shù))

scanf函數(shù)稱為格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。

(1) scanf函數(shù)的一般形式

scanf函數(shù)是一個標準庫函數(shù),它的函數(shù)原型在頭文件“stdio.h”中,與printf函數(shù)相同,C語言也允許在使用scanf函數(shù)之前不必包含stdio.h文件。scanf函數(shù)的一般形式為:scanf(“格式控制字符串”,地址表列);其中,格式控制字符串的作用與printf函數(shù)相同,但不能顯示非格式字符串,也就是不能顯示提示字符串。地址表列中給出各變量的地址。地址是由地址運算符“”后跟變量名組成的。這個地址就是編譯系統(tǒng)在內(nèi)存中給a,b變量分配的地址。在C語言中,使用了地址這個概念,這是與其它語言不同的。應該把變量的值和變量的地址這兩個不同的概念區(qū)別開來。變量的地址是C編譯系統(tǒng)分配的,用戶不必關(guān)心具體的地址是多少。

(2) 格式字符串

格式字符串的一般形式為:%[*][輸入數(shù)據(jù)寬度][長度]類型其中有方括號[]的項為任選項。各項的意義如下:

1) 類型:表示輸入數(shù)據(jù)的類型,其格式符和意義如下表所示。

d,輸入十進制整數(shù)

o,輸入八進制整數(shù)

x,輸入十六進制整數(shù)

u,輸入無符號十進制整數(shù)

f或e,輸入實型數(shù)(用小數(shù)形式或指數(shù)形式)

c,輸入單個字符

s,輸入字符串

2) “*”符:用以表示該輸入項,讀入后不賦予相應的變量,即跳過該輸入值。

如:

scanf("%d %*d %d",a,b);

當輸入為:123時,把1賦予a,2被跳過,3賦予b。

3) 寬度:用十進制整數(shù)指定輸入的寬度(即字符數(shù))。

例如:

scanf("%5d",a);

輸入:12345678

只把12345賦予變量a,其余部分被截去。

又如:

scanf("%4d%4d",a,b);

輸入:12345678

將把1234賦予a,而把5678賦予b。

4) 長度:長度格式符為l和h,l表示輸入長整型數(shù)據(jù)(如%ld) 和雙精度浮點數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。

使用scanf函數(shù)還必須注意以下幾點:

1))scanf函數(shù)中沒有精度控制,如:scanf("%5.2f",a);是非法的。不能企圖用此語句輸入小數(shù)為2位的實數(shù)。

2))scanf中要求給出變量地址,如給出變量名則會出錯。如 scanf("%d",a);是非法的,應改為scnaf("%d",a);才是合法的。

3))在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對“%d”輸入“12A”時,A即為非法數(shù)據(jù))時即認為該數(shù)據(jù)結(jié)束。

4))在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。

例如: scanf("%c%c%c",a,b,c);

輸入為:def

則把'd'賦予a, ' ' 賦予b,'e'賦予c。

只有當輸入為:def

時,才能把'd'賦于a,'e'賦予b,'f'賦予c。

如果在格式控制中加入空格作為間隔,

如:scanf ("%c %c %c",a,b,c);

則輸入時各數(shù)據(jù)之間可加空格。

5) 如果格式控制串中有非格式字符則輸入時也要輸入該非格式字符。

例如:scanf("%d,%d,%d",a,b,c);

其中用非格式符“ , ”作間隔符,故輸入時應為:5,6,7

又如:scanf("a=%d,b=%d,c=%d",a,b,c);

則輸入應為:a=5,b=6,c=7

6) 如輸入的數(shù)據(jù)與輸出的類型不一致時,雖然編譯能夠通過,但結(jié)果將不正確。


網(wǎng)站題目:c語言函數(shù)使用總結(jié),c語言函數(shù)語法
標題鏈接:http://weahome.cn/article/hcohoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部