在C語言中逗號“,”也是一種運算符,稱為逗號運算符。 其功能是把兩個表達式連接起來組成一個表達式, 稱為逗號表達式。其一般形式為:
? 表達式1, 表達式2
其求值過程是分別求兩個表達式的值,并以表達式2(即最右邊的一個表達式)的值作為整個逗號表達式的值。
#include
int main()
{?? ?
?int i ,a;
?i =(a=2*3, a*5), a+6;?
?printf("%d", i);
?return 0;?? ?
}?
輸出結(jié)果:30.
原因分析:
優(yōu)先級排列中,括號>加減乘除>賦值>逗號。
所以當前這個等式的運算應該是:
step1:a = 2*3; ?//結(jié)果a=6
step2:計算a*5; //結(jié)果是30【注意:此時a的值是不變的,仍舊是6!??!】
step3:i = (a=2*3, a*5); ?//得到i值:30.【不去執(zhí)行a+6的原因在于:因為賦值符號 = 的優(yōu)先級比逗號的高,所以直接把30賦值給了 i。 】
如果該等式變成了 ? i=(a=2*3,a*5,a+6); ?
則輸出結(jié)果為12.
step1:a = 2*3; ?//結(jié)果a=6
step2:計算a*5; //結(jié)果是30
step3:計算a+6;//結(jié)果是12
step4:將最右邊的一個等式a+6的值賦給i
————————————————
比如x+=y實際代表的表達式為:x=x+y。
x*=y代表x=x*y
x/=y代表x=x/y
x-=y代表x=x-y
——————————————————————————————————————————————————-
由雙引號串起來的一串字符就是字符串,雙引號里面什么都可以寫。
字符串的結(jié)束標志是一個\0的轉(zhuǎn)義字符。
計算字符串長度的時候不包含\0。
字符是用英文單引號括起來,里面寫一個英文字母或者數(shù)組。
如何來定義一個字符變量呢,下面就是了
char a;
那如果我想給這個字符變量a賦值,那就應該下面這種方式(單引號括起來,里面只能放一個字符)
a = 'A';
a = '2';
a = 'a';
—————————————————————————
C語言中語句的分類
>表達式語句
>函數(shù)調(diào)用語句
>控制語句
>復合語句
>空語句
用流程圈來表示程序的流程
>起止框、處理框、判斷框、輸入/輸出框、流程線
—————————————————————————
庫函數(shù)
用戶自定義函數(shù)
組成c語言程序的基本單位是函數(shù)
—————————————————————————
函數(shù)的聲明:
返回值類型 函數(shù)名稱 (函數(shù)的參數(shù))
函數(shù)的調(diào)用
函數(shù)的定義
—————————————————————————
const int和const double都是指常變量(可看成常量)
—————————————————————————
格式:
函數(shù)首部(函數(shù)頭)
返回值類型 函數(shù)名(類型 形式參數(shù)1,類型 形式參教2)
{
一組語句
return 表達式;
}
(函數(shù)體)
—————————————————————————
函數(shù)的調(diào)用:轉(zhuǎn)向、傳參、執(zhí)行、返回、繼續(xù)
函數(shù)調(diào)用的基本形式
函數(shù)名(實際參數(shù)表);
eg.
bill= totalCost (number, price) ;
實參與形參之問是單向值傳遞,也稱單向值拷貝。
實參與形參個數(shù)、對應數(shù)據(jù)類型完全一致。
—————————————————————————
當一個函數(shù)直接或間接地調(diào)用了自身,就成了遞歸函數(shù)。
遞歸的兩個要素:
1.找到遞推表達式
2.存在遞歸終止條件,即回歸條件
—————————————————————————
變量的作用域與存儲類型?
變量的生命周期
變量的四種存儲類型
靜態(tài)局部變量的特性
變量的生命周期:變量從創(chuàng)建到撤消的這段時間
變量的存儲類型:變量如何存儲在計算機中,它決定了變量的生命周期
四種存儲類型:
自動(auto)
外部(extern)
靜態(tài) (static):重點
寄存器 (register)
自動:
^自動體現(xiàn)在:
進入語句塊時自動申請內(nèi)存,退出時自動釋放內(nèi)存
標準定義格式:
auto 類型名 變量名;
例:auto int a
?缺省的存儲類型
·局部變量不初始化時,值不確定 (VS2010)
(之前的形式參數(shù)變量是自動變量)
靜態(tài):
標準定義格式
static 類型名 變量名;
例:static int a=8:
靜態(tài)變量定義在函數(shù)外部
靜態(tài)全局變量
靜態(tài)變量定義在函數(shù)內(nèi)部
靜態(tài)局部變量
程序編譯時分配內(nèi)存地址,開始運行時實際占用內(nèi)存,直到程序結(jié)束時生命期結(jié)束。
?程序開始運行時被時初始化(默認為0),以后不再進行初始化。
————————————————————————————————————————————
%d左對齊,輸出變量的所有數(shù)字;
%4d右對齊,寬度為4,左邊填充空格,
當變量的實際寬度大于4時,輸出變量的所有數(shù)字;
%04d與%4d的唯一區(qū)別就是左邊填充0。
%-4d意思是數(shù)字占四位、左對齊。
```c
比如,
1.以%d,%4d,%04d,輸出12時,結(jié)果是:
12
兩個空格12
0012
2.以%d,%4d,%04d,輸出123時,結(jié)果是:
123
一個空格123
0123
3.以%d,%4d,%04d,輸出1234時,結(jié)果是:
1234
1234
1234
4.以%d,%4d,%04d,輸出12345時,結(jié)果是:
12345
12345
12345
——————————————————————————————————————————————————————————
printf("%f",fVal);//這是浮點默認輸出格式,小數(shù)點保留6位
printf("%.1f",fVal);//.1是說明,小數(shù)點保留1位,對其后的數(shù)據(jù)進行四舍五入
printf("%.2f",fVal);//.2是說明,小數(shù)點保留2位,對其后的數(shù)據(jù)進行四舍五入,你想保留幾位,就用點幾
printf("%10f",fVal);//輸出寬度為10個字符,右對齊,前補空格,小數(shù)點保留6位
printf("%10.2f",fVal);//輸出寬度為10個字符,右對齊,前補空格,小數(shù)點保留2位
——————————————————————————————————————————————————————————
二、小數(shù)計數(shù)法
(1)1.23456e+002 ,這個數(shù)的表示方式就是,e+002 表示10 的2次方,這里的數(shù)就是123.456。
——————————————————————————————————————————————————————
5、打印字符
打印字符類型,用%c表示
例如輸入如下代碼
char ch='A';
printf("The number of %c% is %d.\n",ch ,ch );
1
2
輸出結(jié)果
The number of A is 65.
————————————————————————————————————————————————————————————————
一、字符輸入函數(shù)getchar:
getchar函數(shù)是從標準的輸入設(shè)備(如鍵盤)上輸入一個字符,不帶任何參數(shù),格式為:
getchar():
getchar函數(shù)將輸入的第一個字符作為函數(shù)的返回值,通常使用這個函數(shù)時,將函數(shù)的返回值賦予一個字符變量或者整型變量。
#include
main()
{?? ?char ch;
?ch = getchar();
?printf("%c %d\n",ch,ch);
?printf("%c %d\n",ch-32,ch-32);
?return 0;
}
程序運行時輸入 abc。
得到的結(jié)果是:
a 97
A 65
--------------------------------
Process exited after 3.084 seconds with return value 0
請按任意鍵繼續(xù). . .
在getchar函數(shù)中只把輸入的第一個字符作為函數(shù)的返回值,所以在代碼中輸入了abc三個字符,只返回了a的值。
在執(zhí)行代碼時,先以字符的形式輸出ch,然后進行數(shù)據(jù)的強制轉(zhuǎn)換,再將ch以整型的形式輸出。字符型數(shù)據(jù)
向整型數(shù)據(jù)轉(zhuǎn)換時,實質(zhì)上是將字符型數(shù)據(jù)轉(zhuǎn)換成與該字符相對應的十進制ASCII碼值。a的ASCII碼值是97,
將a轉(zhuǎn)換后就輸出了97。A的ASCII值是65,輸出的便是65。質(zhì)上是將字符型數(shù)據(jù)轉(zhuǎn)換成與該字符相對應的十
進制ASCII碼值。a的ASCII碼值是97,將a轉(zhuǎn)換后就輸出了97。A的ASCII值是65,輸出的便是65。
二、字符輸出函數(shù)putchar:
putchar函數(shù)是向標準輸出設(shè)備(屏幕)上輸出一個字符的C語言標準函數(shù),格式為:
putchar(ch);
ch可以是變量、常量,轉(zhuǎn)義字符或表達式。數(shù)據(jù)類型可以是字符型或整型。當ch是整型數(shù)據(jù)時,輸出的是與其相對應的ASCII碼值。
#include
main()
{ ? int p;
?char q; //此時定義的是字符變量,不是字符串,所以只能將一個字符的值賦予q
?p=98;
?q='a';
?putchar(p);
?printf("\n");
?putchar(q);
?return 0;
}
執(zhí)行的結(jié)果就是:
b
a
請按任意鍵繼續(xù). . .
————————————————
char a,b,c,d;
?a=getchar();
?b=getchar();
?scanf("%c%c",&c,&d);
?putchar(a);
?putchar(b);
?printf("%c,%c",c,d);
?
?return 0;
————————————————————————————————————————————————————
在printf中,當變量長度比數(shù)據(jù)格式大時,printf與用"%d"數(shù)據(jù)格式輸入完全相同,即原樣輸出。
2)數(shù)據(jù)格式大于變量長度
如printf用 %8d 打印 n ,輸出為 (!)(!)(!)12345 。
如printf用 %-8d 打印 n ,輸出為 12345(!)(!)(!) 。
如printf用 %8s 打印 arr ,輸出為 (!)(!)(!)Hello
如printf用 %-8s 打印 arr ,輸出為 Hello(!)(!)(!)
————————————————
"%(數(shù)字)d"(或者其他轉(zhuǎn)換字符)此數(shù)字在scanf中表示 大字段寬度?
。意思為,你不能輸入字段比此數(shù)字還大的。即輸入到達大字段寬度時,
超過寬度后面的將不再作為輸入內(nèi)容(相當于作廢),在大寬度內(nèi)的為輸入內(nèi)容。
-------------------------------------------------------------
C++中也可以用科學計數(shù)法,比如:
0.01 = 1e-2 ?(注意e前面的那個是數(shù)字1)
100 = 1e2
-------------------------------------------------------------
%d整型輸出,%ld長整型輸出,
%o以八進制數(shù)形式輸出整數(shù),
%x以十六進制數(shù)形式輸出整數(shù),
%u以十進制數(shù)輸出unsigned型數(shù)據(jù)(無符號數(shù))。
%c用來輸出一個字符,
%s用來輸出一個字符串,
%f用來輸出實數(shù),以小數(shù)形式輸出,
%e以指數(shù)形式輸出實數(shù),
%g根據(jù)大小自動選f格式或e格式,且不輸出無意義的零。
————————————————
除法運算符“/”。二元運算符,具有左結(jié)合性。參與運算的量均為整型時,結(jié)果為整型,舍去小數(shù)。如果運算量中有一個為實型,結(jié)果為雙精度實型。
例如:
5/2=2,1/2=0
5/2.0=2.5 ??
? 求余運算符“%”,二元運算符,具有左結(jié)合性。參與運算的量均為整型。求余運算的結(jié)果等于兩個數(shù)相除后的余數(shù)。
例如:
5%2=1,1%2=1
5%2.0和5.0%2的結(jié)果是語法錯誤
---------------------------------------------------------------
C語言float和double的區(qū)別?
1.精度不一樣,float是單精度,double是雙精度;
2.表示小數(shù)的范圍不一樣,double能表示的范圍比float大;
3.double在內(nèi)存中,占8個字節(jié),float在內(nèi)存中,占4個字節(jié)。
注:%f默認保留6位小數(shù),不足位以0補齊,超過六位按四舍五入的方法保留6位,若想輸出指定位數(shù),
在格式化輸出語句中表示變量的字母及%中間的部分控制輸出位數(shù),小數(shù)點后是小數(shù)位數(shù)
double 和 float 的區(qū)別是 double 精度高,有效數(shù)字 16 位,float 精度 7 位。但 double 消耗內(nèi)存是 float 的兩倍,
double 的運算速度比 float 慢得多,能用單精度時不要用雙精度(以省內(nèi)存,加快運算速度)。
------------------------------------------------------------------------
c語言源文件經(jīng)過編譯后,生成文件的后綴是“.obj”。
C語言源文件后綴名是“.c”,編譯生成的文件后綴名是“.obj”,連接后可執(zhí)行文件的后綴名是“.exe”。
C語言創(chuàng)建程序的步驟:
編輯:就是創(chuàng)建和修改C程序的源代碼-我們編寫的程序稱為源代碼。
編譯:就是將源代碼轉(zhuǎn)換為機器語言。編譯器的輸出結(jié)果成為目標代碼,存放它們的文件稱為目標文件。
擴展名為.o或者.obj。(該部分編譯是指匯編器編譯匯編語言或者編譯器編譯高級語言)
鏈接:鏈接器將源代碼由編譯器產(chǎn)生的各種模塊組合起來,再從C語言提供的程序庫中添加必要的代碼模塊,
將它們組成一個可執(zhí)行的文件。在windows下擴展名為.exe,Unix下無擴展名。
執(zhí)行:運行程序。
C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個后綴為“.obj”的二進制文件(稱為目標文件),
最后還要由稱為“連接程序”(link)的軟件,把此“.obj”文件與c語言提供的各種庫函數(shù)連接在一起,
生成一個后綴“.exe”的可執(zhí)行文件。顯然C語言不能立即執(zhí)行。
目標代碼盡管已經(jīng)是機器指令,但是還不能運行,因為目標程序還沒有解決函數(shù)調(diào)用問題,需要將各個目標程序與
庫函數(shù)連接,才能形成完整的可執(zhí)行程序。
----------------------------------------------------------------
格式控制說明符:
%d:輸入一個十進制整數(shù)?
%i:輸入一個整數(shù),可以是十進制或 帶前綴0的八進制整數(shù) 或 帶前綴0x的十六進制整數(shù)
%o:以八進制形式輸入一個整數(shù)(帶不帶前綴都行)
%x:以十六進制 (帶不帶前綴都行)
%u:輸入一個無符號十進制整數(shù)
%c:輸入一個字符
%s:輸入一個字符串
%f:輸入單精度實數(shù),小數(shù)或指數(shù)形式輸入
%lf:輸入雙精度實數(shù)
%p:輸入一個指針(地址)
————————————————
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:///ovo///-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://jinyejixie.com/article46/ghgeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站改版、動態(tài)網(wǎng)站、網(wǎng)站排名、靜態(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)
猜你還喜歡下面的內(nèi)容