![C語言基本知識的整理_第1頁](http://file4.renrendoc.com/view11/M01/06/13/wKhkGWVsEeyAdMfiAAJwwCVeKb4016.jpg)
![C語言基本知識的整理_第2頁](http://file4.renrendoc.com/view11/M01/06/13/wKhkGWVsEeyAdMfiAAJwwCVeKb40162.jpg)
![C語言基本知識的整理_第3頁](http://file4.renrendoc.com/view11/M01/06/13/wKhkGWVsEeyAdMfiAAJwwCVeKb40163.jpg)
![C語言基本知識的整理_第4頁](http://file4.renrendoc.com/view11/M01/06/13/wKhkGWVsEeyAdMfiAAJwwCVeKb40164.jpg)
![C語言基本知識的整理_第5頁](http://file4.renrendoc.com/view11/M01/06/13/wKhkGWVsEeyAdMfiAAJwwCVeKb40165.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言基本知識的整理C語言的特點1.機器語言、匯編語言、高級語言機器語言:是各類語言在計算機上儲存的最終形式。二進(jìn)制編碼。是“面向機器的語言”或“低級語言”。匯編語言:用具有一定意義的符號代替機器語言中的各條命令和地址。又稱為“面向機器的語言”或“低級語言”。高級語言:編寫接近日常的數(shù)學(xué)表達(dá)習(xí)慣,和自然語言。具有一般性通用性。又稱“面向問題的語言”和“算法語言”。2.源程序、編譯程序、解釋程序用高級語言編寫的程序稱為源程序,必須將其翻譯成二進(jìn)制程序才能執(zhí)行。翻譯有兩種方式:一種是通過“解釋程序”翻譯一句執(zhí)行一句的方式執(zhí)行。一種通過“編譯程序”一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。C語言本身的特點主要有:表達(dá)能力強,。流程控制結(jié)構(gòu)化、程序結(jié)構(gòu)模塊化。。語言簡練、緊湊。有32個關(guān)鍵字,9種控制語句。數(shù)據(jù)結(jié)構(gòu)豐富。運算符豐富。C有34種運算符。程序代碼質(zhì)量高。運可移植性好。。C程序基本結(jié)構(gòu):⒈C程序是由若干個函數(shù)構(gòu)成的,每個程序有且僅有一個主函數(shù)(函數(shù)名規(guī)定為main)。2.C程序的執(zhí)行總是從主函數(shù)開始,并在主函數(shù)中結(jié)束。3.每個函數(shù)(含主函數(shù))的定義分為兩部分:函數(shù)說明部分(首語句)函數(shù)體{……}。4.主函數(shù)可以調(diào)用任何非主函數(shù),任何非主函數(shù)都可以相互調(diào)用,但不能調(diào)用主函數(shù)。2.結(jié)構(gòu)類型“結(jié)構(gòu)”一般可以稱為數(shù)據(jù)元素,在不同的結(jié)構(gòu)類型中,數(shù)據(jù)元素會有特定的名稱。結(jié)構(gòu)類型的數(shù)據(jù)由更加基本的成分組成。這些成分稱為“數(shù)據(jù)項”,結(jié)構(gòu)的子成員。(1)數(shù)組下標(biāo)從0開始a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]1020304050607080一個數(shù)組(array)是由相同類型的若干數(shù)組元素構(gòu)成的有限序列。C語言的數(shù)定義:intb[8],a[8];charc[10];(2)結(jié)構(gòu)體C語言中實現(xiàn):日期類型的定義structDate{intmonth;/*月*/intday;/*日*/intyear;/*年*/};structDatemyd={12,16,1978};系統(tǒng)分配給它的內(nèi)存是各成員所需內(nèi)存量的總和。本例是6.3.指針類型(1)指針:變量名的在內(nèi)存中的存儲地址。(2)指針變量inti=12,*p;P=&i;把存放變量i的地址的變量p稱作指針變量。指針變量的存放內(nèi)容是數(shù)據(jù)的地址。(3)指針引用變量指針變量可以指向各種不同的數(shù)據(jù)類型,因此指針變量也要有不同的指針類型。如:intm,*p;floatx,*q;inta[],*rm=12;p=&m;x=3.14;q=&x;r=a;C源程序書寫格式1.組成C語言源程序的基本單位則是語句。C程序中的語句最后總要有一個分號“;”作為每個語句的結(jié)束。2.C語言源程序由若干行組成,一行可寫一個語句。也可在一行上以書寫多個語句。3.關(guān)于注釋??梢杂谩?*”和“*/”括住任意字符,稱為“注釋”。在其內(nèi)部的代碼是不編譯,不執(zhí)行的。小結(jié):匯編語言編寫的程序必須經(jīng)匯編為目標(biāo)程序。高級語言編寫的程序必須經(jīng)編譯為目標(biāo)程序。C語言程序總是從main()函數(shù)開始執(zhí)行,到main()函數(shù)結(jié)束。因此,C語言程序至少有一個main()函數(shù)。C語言的詞類一、字符集在C語言程序中允許出現(xiàn)的所有基本字符的組合稱為C語言的字符集。C語言的字符集就是ASCII字符集,主要分52個大小寫英文字母、10個數(shù)字、33個鍵盤符號和若干轉(zhuǎn)義字符。二、保留字在C語言的程序中有特殊含義的英文單詞稱為“保留字”,主要用于構(gòu)成語句、進(jìn)行存儲類型和數(shù)據(jù)類型定義。表1.1C語言的32個關(guān)鍵字?jǐn)?shù)據(jù)類型數(shù)據(jù)類型14char,short,int,unsigned,long,float,double,struct,union,void,enum,signed,const,volatile存儲類型5break,case,continue,default,do,else,for,goto,if,return,switch,while流程控制12運算符1typedef,auto,register,static,externsizeof三、標(biāo)識符是用戶自定義的一種字符序列,用于變量名、函數(shù)名、常量名等,主要由程序設(shè)計者指定。規(guī)則:①標(biāo)識符只能由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線。②不能與上述32個關(guān)鍵字同名。③(ANSI)規(guī)定C語言標(biāo)識符的有效長度不大于32個字符。而PC機中通常是前8個字符有效。④C語言大小寫敏感。四、分隔符是用來分隔標(biāo)識符的符號??崭褡址Q行符、換頁符及注釋均是C的分隔符,通稱為空白字符??瞻鬃址谡Z法上僅起分隔單詞的作用。一個或多個空白字符,其效果相同。數(shù)據(jù)類型(DataType)數(shù)據(jù)表示形式合法的取值范圍占用內(nèi)存空間大小可參與的運算種類數(shù)據(jù)類型數(shù)據(jù)類型構(gòu)造類型指針類型空類型整型實型(浮點型)字符型枚舉類型數(shù)組類型結(jié)構(gòu)體類型共用體類型單精度實型雙精度實型基本整型長整型短整型無符號整型簡單類型簡單類型構(gòu)造類型指針類型整型實型字符型數(shù)組結(jié)構(gòu)體共用體數(shù)值型枚舉型空類型int2個字節(jié)long4個字節(jié)float4個字節(jié)double8個字節(jié)char1個字節(jié)成員類型字節(jié)數(shù)×個數(shù)struct各成員字節(jié)數(shù)之和不要求C語言的數(shù)據(jù)表示1.1常量和變量1.常量常量是在程序執(zhí)行中,值不發(fā)生改變的數(shù)據(jù)。其值預(yù)先決定,之后不變。有不同的數(shù)據(jù)類型。(1)常數(shù)(有的稱直接常量、頁面常量)例如的:整數(shù):+5、-3、017(八進(jìn)制)、0x1f(16進(jìn)制)實數(shù)(浮點數(shù)):3.14、-1.2E-3(E3,2E3.0不合法)、1E10(不是整型量)單個字符:‘A’,占一個字節(jié)’\\’,轉(zhuǎn)義字符‘\’‘\’非法’\77’(八進(jìn)制ASCII碼63,‘?’),’\78’非法’\x3f’(十六進(jìn)制ASCII碼63,‘?’)‘\x3g’非法字符串:“A”后面有\(zhòng)0,占兩個字節(jié) 字符串“\*\077\\\x7f\n”的長度是:5“\x7F”和’\x7F’的字節(jié)數(shù)分別為:2,1(2)符號常量給常量起標(biāo)識符名字。C語言的符號常量(用宏定義):#definePI3.14159265注意:1.一般用大寫字母。2,#defineM3不是C語句,后面沒有“;”。3.可以做M+1,不能做M++.(3)地址常量當(dāng)數(shù)組在定義時,其變量名為其首地址,是地址常量。inta[10];可以做a+1,不能做a++.2.變量用各種操作來改變值數(shù)據(jù)。從“名”和“值”兩個角度認(rèn)識變量(1)變量名每個變量,要在使用前定義變量的名字,遵循標(biāo)識符命名規(guī)則。只能用字母、數(shù)字和下劃線組成。不能以數(shù)字開頭。不能用保留字(int,printf,main…..)。合法:a12a_3_abc非法:12aa#int變量定義就是申請數(shù)據(jù)的存儲空間,登記數(shù)據(jù)的各種存儲特性。例如:intm;2個字節(jié)longn;4個字節(jié)charch;1個字節(jié)floatx;4個字節(jié)doubley;8個字節(jié)可以用sizeof獲得字長sizeof(char)=1sizeof(int)=2sizeof(double)=8(2)變量的值變量值就是由變量名所指定空間上的存儲數(shù)據(jù)內(nèi)容。即變量的當(dāng)前值。數(shù)據(jù)內(nèi)容用語言的操作語句來改變。賦值語句;鍵盤輸入語句;charchx;intm;/*變量的定義*/chx=‘A’;m=12*3;/*賦值語句*/scanf(“%d”,&m);/*鍵盤輸入語句*/變量初始化:定義變量時同時確定變量初值。例如:charchy=‘a(chǎn)’;intweight=2;1.2表達(dá)式C語言的表達(dá)式使用規(guī)定的運算符,將常量、變量、函數(shù)(調(diào)用)連結(jié)的一個有意義的式子。1、算術(shù)表達(dá)式用算術(shù)運算符來表示對數(shù)據(jù)的算術(shù)運算求值過程。算術(shù)運算符:+-*/%2/3結(jié)果是0,2%3結(jié)果是22、關(guān)系表達(dá)式關(guān)系運算符:>>=<<=(優(yōu)先級較高)!===(優(yōu)先級較低)關(guān)系表達(dá)式的結(jié)果:1(非0,真),0(假)分析:10<=a<=15a=9當(dāng)a=9,10<=a假,把0賦給a,則0<=15真所以要寫成10<=a&&a<=15則結(jié)果是假3、邏輯表達(dá)式用邏輯表達(dá)式來表示對數(shù)據(jù)的邏輯關(guān)系判斷,運算結(jié)果是邏輯值“真”1或者“假”0。C邏輯運算符包括:!&&||參加邏輯運算的數(shù)據(jù)必須是邏輯量,可以是邏輯類型的變量、常量,關(guān)系表達(dá)式或邏輯表達(dá)式。C語言中,沒有專門的邏輯量,1是真值,0是假值。也認(rèn)為非零的值為真值。如:inta=3,b=4,c=-5;(1)!((a<b)&&!c||1)(2)if(a)printf(“\nyes”);位運算符和位運算運算符含義運算符含義&按位與~取反|按位或<<左移^按位異或>>右移“按位與”運算符──&
(1)格式:x&y
(2)規(guī)則:對應(yīng)位均為1時才為1,否則為0:3&7=。例如,3&7=:0011&0111 ──── 0011=3 (3)主要用途:取(或保留)1個數(shù)的某(些)位,其余各位置0。"按位或"運算符──|
(1)格式:x|y
(2)規(guī)則:對應(yīng)位均為0時才為0,否則為1:3|9=11。例如,3|9=11:0011 |1001──── 1011=11
(3)主要用途:將1個數(shù)的某(些)位置1,其余各位不變。"按位異或"運算符──^(1)格式:x^y(2)規(guī)則:對應(yīng)位相同時為0,不同時為1:例如57^42=19。00111001^00101010 ────────00010011(3)主要用途:使1個數(shù)的某(些)位翻轉(zhuǎn)(即原來為1的位變?yōu)?,為0的變?yōu)?),其余各位不變。"按位取反"運算符──~(1)格式:~x(2)規(guī)則:各位翻轉(zhuǎn),即原來為1的位變成0,原來為0的位變成1:在IBM-PC機中,~0=0xffff,~9=0xfff6。(3)主要用途:間接地構(gòu)造一個數(shù),以增強程序的可移植性。"按位左移"運算符──<<(1)格式:a<<位數(shù)(2)規(guī)則:使操作數(shù)的各位左移,低位補0,高位溢出:例如a=15,則a=a<<2;后a的值為60即從:00001111左移2位后為00111100(3)左移1位相當(dāng)于乘于2(當(dāng)高位不包含0時)“按位右移”運算符──>>(1)格式:a>>位數(shù)(2)規(guī)則:使操作數(shù)的各位右移,移出的低位舍棄;高位:1)對無符號數(shù)和有符號中的正數(shù),補0;2)有符號數(shù)中的負(fù)數(shù),取決于所使用的系統(tǒng):補0的稱為“邏輯右移”,補1的稱為“算術(shù)右移”。例如:a=017:00001111a>>2為:00000011又如a:10101111a>>2:00101011(邏輯右移)a>>2:11101011(算術(shù)右移)位運算賦值運算符a&=b等價于a=a&ba<<=b等價于a=a<<b邏輯運算規(guī)律①在&&(與)表達(dá)式中,若&&的左端為假,則不再計算另一端,該表達(dá)式值肯定為0(假)。②在||(或)表達(dá)式中,若||的左端為真,則不再計算另一端,表達(dá)式的值必定為1(真)。inta=5,b=1k=a<=3(假,后面不算了)&&b-->0k?b?結(jié)果k=0,b=14、賦值表達(dá)式=,+=,-=,*=,/=,++(單目),--(單目)級別僅高于逗號表達(dá)式,右結(jié)合inta=3,c=2,ba=b=c;c賦值給b,b=2b賦值給a,a=2n*=m+2相當(dāng)于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ii++,++ii++先使用,后加1,++i先加1,后使用要充分理解中”使用”的實際意義k=i++作賦值運算,使用就是賦值.先做k=i,再做i=i+1k==i++作比較判斷運算,使用就是比較判斷先做k==i,是真還是假,再做i=i+1printf(“%d”,i++)作輸出結(jié)果,使用就是輸出結(jié)果.先輸出i,再做i=i+1a=5-(i++)作減法,使用就是減.先做5-i,并賦給a,再做i=i+15、條件表達(dá)式e1?e2:e3若e1為真,表達(dá)式的值為e2,否則為e3.a=3,b=2;(--a==b++)?--a:b++結(jié)果是15?10非零為真表達(dá)式的值為10-5?10:3表達(dá)式的值為100?10:3假表達(dá)式的值為3b=3;賦值運算符優(yōu)先僅高于逗號運算符a=(b>5?10:3);a=b>5?10:3;a=?結(jié)果a=36、逗號表達(dá)式表達(dá)式的值等于最后一個表達(dá)式的值,運算等級最低!a=5,b=2,c=3a=7+b+c,b++a=12a=(7+b+c,b++)a=27、強制類型轉(zhuǎn)換表達(dá)式(單目)intm;sqrt((float)m);b=2a=5-(--b)()優(yōu)先級最高,--b右結(jié)合-優(yōu)先級其次=優(yōu)先級最低--b,b=b-1,b為1再做5-b,即5-1等于4最后將4賦給a理解記憶運算符表!++,--,等(高)(低)算數(shù)運算符關(guān)系運算符邏輯運算符&&||條件運算符賦值運算符逗號運算符-1.3數(shù)據(jù)類型簡單類型、結(jié)構(gòu)類型、指針類型簡單類型(1)整型類型名字節(jié)數(shù)輸入、輸出格式int2%dshort2%dlong4%ld(2)實型類型名字節(jié)數(shù)輸入、輸出格式有效數(shù)字位float4%f7doubule8%lf1616longdoubule16%lf19(3)字符型(輸入、輸出格式“%c”)ASCII碼,一個字符占1字節(jié);char型數(shù)據(jù)與int型數(shù)據(jù)之間的關(guān)系char型對應(yīng)其ASCII碼,只不過是占一個字節(jié)。大寫字母與小寫字母之差為32.char型變量既能以%c字符格式輸出,也能以%d整型格式輸出。能象int量一樣進(jìn)行算術(shù)運算。注意轉(zhuǎn)義字符’\’的使用?!甛*’‘\101’(A,8進(jìn)制)‘\x41’(A,16進(jìn)制)‘\n’(4)字符串(輸入、輸出格式“%s”)所謂“字符串”是指若干有效字符的序列。C語言字符串可以包括字母、數(shù)字、專用字符、轉(zhuǎn)義字符等。字符串常量:使用雙引號"China""BASIC""a+b=c""Li-Li"“39.4”“%d\n”“解放軍““\*\077\\\x7f\n”字符型的一維數(shù)組(相當(dāng)于字符串變量)charst[8],str[10];strcpy(st,"12345");strcpy(str,st);不能st=“12345”;str=st;這是賦值.可以charst[]=“12345”;這是初始化.1.4輸入、輸出輸出:printf(“…….”,…….)%d,%6d,%ld%c,%s%f,%10.2f,%lf,%20.8lfchara[]=“abfgcde”,max,max_i;main(){…….printf(“max=%c\nmax_i%d=”,max,max_i);(max=gmax_i=3)常見錯誤inta,b;chard,e[20];-scanf("%d,%f\n”,&a,&b);\n要多輸入一個值-scanf("%d,%f”,a,b);缺&-scanf("%7.2f",&b);不能規(guī)定精度-scanf("%s",&e);數(shù)組名是首地址,不要&-scanf("%f",&d);類型不匹配輸入:scanf(“…….”,…….)%d,%ld對應(yīng)intlong%c,%s對應(yīng)charcharstr[]%f,%lf對應(yīng)flaotdoubleC程序常見符號分類關(guān)鍵字(Keyword)又稱為保留字,C語言中預(yù)先規(guī)定的具有固定含義的一些單詞數(shù)據(jù)類型修飾符int,控制語句return等標(biāo)識符(Identifier)系統(tǒng)預(yù)定義標(biāo)識符,main,printf等用戶自定義標(biāo)識符,Add,x,y等運算符(Operator)34種,詳見附錄2分隔符(Separator)空格、回車/換行、逗號等其它符號大花括號“{”和“}”通常用于標(biāo)識函數(shù)體或者一個語句塊“/*”和“*/”是程序注釋所需的定界符數(shù)據(jù)(Data)變量(Variable)常量(Constant)如何衡量數(shù)據(jù)類型所占空間大小?b,B,KB,MB,GB,TBbit,中文叫法:位Byte,中文叫法:字節(jié)Kilobyte(KB),中文叫法:KMegabyte(MB),中文叫法:兆Gigabyte(GB),中文叫法:GTerabyte(TB),中文叫法:T1TB==1,024GB1GB==1,024MB1MB==1,024KB1KB==1,024B1B==8b基本數(shù)據(jù)類型int整數(shù),在目前絕大多數(shù)機器上占4個字節(jié)。TC2中是2個字節(jié)VC中是4個字節(jié)float單精度浮點數(shù),一般是4個字節(jié)長double雙精度浮點數(shù),一般是8個字節(jié)長char字符,一般是1個字節(jié)長用來表示256個ASCII字符,或者0~255的整數(shù)shortshortint,短整數(shù),一般2個字節(jié)長。通常簡寫為shortlonglongint,長整數(shù),一般是4個字節(jié)長。通常簡寫為longlongdouble,長雙精度(高精度)浮點數(shù),一般是10個字節(jié)長。signed用來修飾char、int、short和long,說明他們是有符號的整數(shù)(正整數(shù)、0和負(fù)整數(shù))。一般缺省都是有符號的,所以這個修飾符通常省略unsigned用來修飾char、int、short和long,說明他們是無符號的整數(shù)(正整數(shù)和0)C語言的程序結(jié)構(gòu)與相關(guān)語句帶參宏定義以文本按原樣展開#defineMUL(x)x*x5/MUL(5+3)=5/5+3*5+3=19#defineMUL(x)(x)*(x)5/MUL(5+3)=5/(5+3)*(5+3)=5#defineMUL(x)((x)*(x))5/MUL(5+3)=5/((5+3)*(5+3))=5/641.表達(dá)式語句的組成:由一個表達(dá)式后接一個分號組成的。⒈一組語句括在一對花括號之中,稱復(fù)合語句。{c=getchar();putchar(c);}注意,一個復(fù)合語句的后花括號之后不應(yīng)再寫分號。⒉在語法上是一個整體,相當(dāng)于一個語句。凡是能夠使用簡單語句的地方,都可以使用復(fù)合語句。一個復(fù)合語句中又可以包含另一個或多個復(fù)合語句流程控制語句完成一定的控制功能。9種控制語句:判斷語句條件判斷語句if()…else…多分支選擇語句switch()…case循環(huán)語句循環(huán)次數(shù)控制語句for()先判斷后執(zhí)行循環(huán)控制語句while()先執(zhí)行后判斷循環(huán)控制語句do…while()轉(zhuǎn)移控制語句直接轉(zhuǎn)移語句goto終止語句break(用在循環(huán)結(jié)構(gòu)、swicth)跳轉(zhuǎn)語句continue(僅用在循環(huán)結(jié)構(gòu))返回語句return二、C語言的程序結(jié)構(gòu)與相關(guān)語句程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)if()…else…switch()…case單分支結(jié)構(gòu)if(a==b)printf(“yes”);雙分支結(jié)構(gòu)if(a==b)printf(“yes”);elseprintf(“no”);多分支結(jié)構(gòu)switch_caseswitch(表達(dá)式){case常量表達(dá)式1:語句序列1;[break;] case常量表達(dá)式2:語句序列2;[break;] ……… case常量表達(dá)式n:語句序列n;[break;] [default:語句序列n+1;]} 根據(jù)“表達(dá)式”的值從上至下去尋找與表達(dá)式的值相匹配的“case常量表達(dá)式”,執(zhí)行一個分支后,再執(zhí)行下一個分支,直到break結(jié)束,然后執(zhí)行switch結(jié)構(gòu)后面的程序。找不到匹配的入口標(biāo)號時,執(zhí)行“語句序列n+1”,然后結(jié)束。順序向下執(zhí)行程序。循環(huán)結(jié)構(gòu)for(){…..;}while(){……;}do{……;}while()for,while,do-while三種結(jié)構(gòu)循環(huán)變量初始化,繼續(xù)循環(huán)條件,改變循環(huán)變量是不可缺少的三個環(huán)節(jié)。for常用于循環(huán)次數(shù)已知的問題中。括號中的兩個“;”不可省。while與do-while常用于循環(huán)次數(shù)未知的問題中。注意點:在for和while語句之后一般沒有分號有分號表示循環(huán)體就是分號之前的內(nèi)容(空循環(huán)體)while(i<100);
i++;for(i=0;i<100;i++);
printf("%d",i);if,swtich,while,for后面的語句只能是一句,因此,多句時別忘了{(lán)}。在while(e)和for(;e;)中的e是循環(huán)繼續(xù)的條件,不能寫其它條件!如果缺省,就是死循環(huán)!在if(e),while(e)和for(;e;)中e的值是邏輯值(0或非0)e一般是關(guān)系表達(dá)式,邏輯表達(dá)式或變量。break,coutinuebreak只能用于switch和循環(huán)語句中,作用提前終止本層次switch和循環(huán)。coutinue是跳過循環(huán)體內(nèi)尚未執(zhí)行的語句,接著執(zhí)行下次循環(huán)。常用的循環(huán)算法求素數(shù)、水仙花數(shù)、最小公倍數(shù)、最大公約數(shù)、分解多位數(shù)的數(shù)字,累加,累乘,分解質(zhì)因數(shù)等。各種有規(guī)律的圖案。三數(shù)組定義inta[5]時,a[0],a[1]…..=?隨機數(shù)!只有inta[5]={3}后,后面幾項自動賦0數(shù)組的初始化合法:inta[]={1,2,3,4,5};inti[][3]={1,2,3,4,5,6};inta[5]={1,2,3};chara[4]=“boy”chara[3]={‘b’,’o’,’y’}不合法:inta[5]={,2,,4,5};inti[2][]={1,2,3,4,5,6};inta[5]={};chara[4]={boy}二維字符數(shù)組二維數(shù)組在內(nèi)存中的排列順序是“按行優(yōu)先存放”二維數(shù)組a[m][n]可以視為由n個一維數(shù)組a[m]組成的。二維字符數(shù)組中m由其中最長的字符串決定。charstu[5][6]={“Tom",“Anne",“Mary",“Peter"};其中stu[0]=“Tom"stu[1]=“Anne"字符數(shù)組charstr[50];inti;for(i=0;str[i]!=‘\0’,i++)構(gòu)造新的字符數(shù)組(刪除,插入,復(fù)制,連接,倒序)。1.用和不用字符串函數(shù)實現(xiàn)上述功能。2.用指針實現(xiàn)。3.必須注意最后一項一定是:str[i]=‘\0’;或*p=‘\0’;數(shù)組的操作往往用循環(huán)結(jié)構(gòu).數(shù)值數(shù)組inta[10];for(i=0;i<10;i++)字符數(shù)組chara[50];for(i=0;a[i]!=‘\0’;i++)數(shù)值數(shù)組倒序for(i=0,j=M;i<j;i++,i--)交換a[i],a[j]字符數(shù)組倒序for(i=0,j=strlen(a);i<j;i++,i--)交換a[i],a[j]數(shù)值數(shù)組voidinv(intx[],intm){inti,j,k;j=m;for(i=0;i<j;i++,i--){k=x[i];x[i]=x[j];x[j]=k;}字符數(shù)組voidinv(intx[]){inti,j,k;j=strlen(x);for(i=0;i<j;i++,i--)k=x[i];x[i]=x[j];x[j]=k;}}一.字符串和字符串的存儲方法所謂“字符串”是指若干有效字符的序列。C語言中的字符串可以包括字母、數(shù)字、專用字符、轉(zhuǎn)義字符等。1.字符串常量:使用雙引號"China""BASIC""a+b=c""Li-Li""39.4""%d\n""解放軍“2.字符型的數(shù)組(字符串變量)charst[8],str[10];本質(zhì):數(shù)組元素的值是char類型。字符串函數(shù)要用#include<string.h>字符串拷貝函數(shù)strcpy字符串連接函數(shù)strcat字符串比較函數(shù)strcmp測字符串長度函數(shù)strlen函數(shù)strlen的值為‘\0’之前的全部字符個數(shù).它與數(shù)組長度不是一個概念.chars[6]={‘H’,’o’,’w’,’\0’,’o’,’k’}strlen(s)=3C中是以‘\0’字符作為字符串結(jié)束標(biāo)志的.注意:字符數(shù)組和字符串是兩個不同含義的概念,1.字符串存放在字符數(shù)組中,字符串以‘\0’作為結(jié)束標(biāo)記。2.字符數(shù)組,則未必。charst[9];“BeiJing”st[0]='B';st[1]='e';st[2]=‘i';st[3]='';st[4]='J';st[5]='i';st[6]='n';st[7]='g';st[8]='\0';charst[9]={’B’,’e’,’i’,’’,’J’,’i’,’n’,’g’,’\0’};①逐個地為數(shù)組中各元素指定初值字符。(a)一個字符一個字符地分別賦給各元素。例如:charst[9]={’B’,’e’,’i’,’’,’J’,’i’,’n’,’g’,’\0’};(b)當(dāng)全部元素指定初值的情況下,字符數(shù)組的大小可以不必定義。即:charst[]={’B’,’e’,’i’,’’,’J’,’i’,’n’,’g’,’\0’};②也可以用字符串常量對字符數(shù)組指定初值。如:charst[]={"BeiJing"};字符串函數(shù)的應(yīng)用數(shù)組的初始化規(guī)則:①當(dāng)對數(shù)組中全體元素賦初值時,可以不必指明數(shù)組中元素的個數(shù)。如:inta[]={1,2,3,4,5};②在定義數(shù)組時可只對部分元素初值。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年平移大門驅(qū)動系統(tǒng)項目可行性研究報告
- 2025年合金鋼襯項目可行性研究報告
- 2025年辦公紙張項目可行性研究報告
- 2025年中心信號源系統(tǒng)項目可行性研究報告
- 2025至2030年高效泵送摻合料項目投資價值分析報告
- 2025至2030年舟山半鹽干鰈魚項目投資價值分析報告
- 2025至2030年中國腸溶阿斯匹林片數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年旋筒式冷渣機項目投資價值分析報告
- 2025至2030年峨嵋鑿項目投資價值分析報告
- 2025至2030年中國工業(yè)穿線數(shù)據(jù)監(jiān)測研究報告
- 2025年春新外研版(三起)英語三年級下冊課件 Unit1第2課時Speedup
- 2024年石柱土家族自治縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 西藏事業(yè)單位c類歷年真題
- 上海市2024年中考英語試題及答案
- 2025中國移動安徽分公司春季社會招聘高頻重點提升(共500題)附帶答案詳解
- 七年級英語下學(xué)期開學(xué)考試(深圳專用)-2022-2023學(xué)年七年級英語下冊單元重難點易錯題精練(牛津深圳版)
- 2025江蘇省全日制勞動合同書范本
- 北京版(一起)英語二年級下冊單詞默寫表
- 中建抹灰工程專項施工方案
- 地方融資平臺債務(wù)和政府中長期支出事項監(jiān)測平臺操作手冊-單位
- 放射科護(hù)理常規(guī)
評論
0/150
提交評論