C語言程序結(jié)構(gòu)和語法規(guī)則.doc_第1頁
C語言程序結(jié)構(gòu)和語法規(guī)則.doc_第2頁
C語言程序結(jié)構(gòu)和語法規(guī)則.doc_第3頁
C語言程序結(jié)構(gòu)和語法規(guī)則.doc_第4頁
C語言程序結(jié)構(gòu)和語法規(guī)則.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言程序結(jié)構(gòu)和語法規(guī)則一、C語言程序的基本結(jié)構(gòu)下面通過幾個簡單的示例,介紹C語言程序的基本構(gòu)成和書寫格式,使讀者對C語言程序有一個基本的了解。在此基礎(chǔ)上,再進(jìn)一步了解C語言程序的語法和書寫規(guī)則。 【例1.1】求三個數(shù)的平均值的C語言程序。 /*功能:求三個數(shù)的平均值*/main() /* main()稱為主函數(shù)*/float a,b,c,ave; /* 定義a,b,c,ave為實(shí)型數(shù)據(jù)*/a=7;b=9;c=12;ave=(a+b+c)/3; /*計(jì)算平均值*/printf(ave=%fn,ave); /* 在屏幕上輸出ave的值 */程序運(yùn)行結(jié)果:ave=9.333333【例1.2】輸出兩個數(shù)中的較大值的C語言程序。/*功能:輸出兩個數(shù)中的較大值 */main() /*主函數(shù)*/int num1,num2,max; /*定義num1、num2、max為整型變量*/scanf(%d,%d,&num1,&num2); /*由鍵盤輸入num1、num2的值*/printf(max=%dn,max(num1,num2); /*在屏幕上輸出調(diào)用max的函數(shù)值*/*用戶設(shè)計(jì)的函數(shù)max()*/int max(int x,int y) /* x和y分別取num1和num2傳遞的值*/if(xy) return x; /* 如果xy,將x的值返回給max */else return y; /* 如果xy不成立,將y的值返回給max */程序運(yùn)行情況:5,8(“”表示按回車鍵,以下相同)max=8在以上兩個示例中,【例1.1】所示的C語言程序僅由一個main()函數(shù)構(gòu)成,它相當(dāng)于其他高級語言中的主程序;【例1.2】所示的C語言程序由一個main()和一個其他函數(shù)max()(用戶自己設(shè)計(jì)的函數(shù))構(gòu)成,函數(shù)max()相當(dāng)于其他高級語言中的子程序。由此可見,一個完整的C語言程序結(jié)構(gòu)有以下兩種表現(xiàn)形式:(1)僅由一個main()函數(shù)(又稱主函數(shù))構(gòu)成,如圖1-1(a)所示。(2)由一個且只能有一個main()函數(shù)和若干個其他函數(shù)結(jié)合而成,如圖1-1(b)所示。其中,自定義函數(shù)由用戶自己設(shè)計(jì)。圖1-1 C語言程序結(jié)構(gòu)示意圖結(jié)合以上示例,可以看出C語言程序結(jié)構(gòu)有以下基本特點(diǎn):(1)C語言程序是由函數(shù)(如:main函數(shù)和max函數(shù))組成的,每一個函數(shù)完成相對獨(dú)立的功能,函數(shù)是C語言程序的基本模塊單元。main是函數(shù)名,函數(shù)名后面的一對圓括號“()”是用來寫函數(shù)的參數(shù)的。參數(shù)可以有,也可以沒有(本程序沒有參數(shù)),但圓括號不能省略。(2)一個C語言程序總是從main()函數(shù)開始執(zhí)行。主函數(shù)執(zhí)行完畢,程序執(zhí)行結(jié)束。(3)C語言編譯系統(tǒng)區(qū)分字母大小寫。C語言把大小寫字母視為兩個不同的字符,并規(guī)定每條語句或數(shù)據(jù)說明均以分號(;)結(jié)束。分號是語句不可缺少的組成部分。(4)主函數(shù)main()既可以放在max()函數(shù)之前,也可以放在max()函數(shù)之后。習(xí)慣上,將主函數(shù)main()放在最前面。(5)C語言程序中所調(diào)用的函數(shù),既可以是由系統(tǒng)提供的庫函數(shù),也可以是由設(shè)計(jì)人員自己根據(jù)需要而設(shè)計(jì)的函數(shù)。例如,在【例1.2】中,printf()函數(shù)是C語言編譯系統(tǒng)庫函數(shù)中的一個函數(shù),它的作用是在屏幕上按指定格式輸出指定的內(nèi)容;max()函數(shù)是由用戶自己設(shè)計(jì)的函數(shù),它的作用是計(jì)算兩個數(shù)中的較大值。二、C語言程序的書寫規(guī)則(1)C源程序是由一個主函數(shù)和若干個其它函數(shù)組成的。(2)函數(shù)名后必須有小括號,函數(shù)體放在大括號內(nèi)。(3)C程序必須用小寫字母書寫。(4)每句的末尾加分號。(5)可以一行多句。(6)可以一句多行。(7)可以在程序的任何位置加注釋。一個完整的語言程序,是由一個main()函數(shù)(又稱主函數(shù))和若干個其它函數(shù)結(jié)合而成的,或僅由一個main()函數(shù)構(gòu)成。例1.3 僅由main()函數(shù)構(gòu)成的語言程序。main() printf(“This is a C program.n”);程序運(yùn)行結(jié)果:This is a C program. 例1.4 由main()函數(shù)和1個其它函數(shù)max()構(gòu)成的語言程序。int max(int x, int y) return( xy ? x : y ); main() int num1,num2;printf(“Input the first integer number: ”);scanf(“%d”, &num1);printf(“Input the second integer number: ”);scanf(“%d”, &num2);printf(“max=%dn”, max(num1, num2);程序運(yùn)行情況: Input the first integer number:6 Input the second integer number:9max=9 運(yùn)算符與優(yōu)先級、表達(dá)式一、運(yùn)算符運(yùn)算符包括下面這些類型:1、算術(shù)運(yùn)算符(,*,):依次為加,減,乘,除,求余數(shù)。除最后兩種是單目運(yùn)算符外,其它幾種都是雙目運(yùn)算符。前四種運(yùn)算較簡單,不再展開敘述,最后三種運(yùn)算的定義如下:Op1 op2 表示:oPlint(oP1op2)*op2,其中ina(a)表示取a的整數(shù)部分(a的小數(shù)部分總非負(fù))。Op+ 表示 op = op +1;Op- 表示 op = op -1;2 關(guān)系運(yùn)算符(,=, ,) 依次為取反,按位與,按位或,按位異或,右移位,左移位,無符號右移位5 賦值運(yùn)算符() 賦值操作符,它將等號右邊數(shù)據(jù)的值賦值給左邊的變量。6 條件運(yùn)算檸(?:)條件運(yùn)算符為三目運(yùn)算符,其“般格式為:ab?a:b7 擴(kuò)展運(yùn)算符(十, * , /= ,|,)擴(kuò)展運(yùn)算符都是由一個雙目運(yùn)算符和一個等號連在一起組成(注意它們之間不能用空格隔開),以“+”為例說明這類擴(kuò)展運(yùn)算符的用法:A += B; 表示A A+B 其它類似。8 其他運(yùn)算符,如豆號運(yùn)算符“,”,分量運(yùn)算符“ ”。再如實(shí)例運(yùn)算符“instanceof”,內(nèi)存分配運(yùn)算符“new”,強(qiáng)制類型轉(zhuǎn)換運(yùn)算符“(類型)”,方法調(diào)用運(yùn)算符“()”,取數(shù)組元素運(yùn)算符“ ”。比如,設(shè)t是類Thread的一個實(shí)例。分量運(yùn)算符:tname 表示類的實(shí)例的調(diào)用,又叫點(diǎn)問,(意指通過點(diǎn)的操作符訪問類的實(shí)例對象)二、運(yùn)算符的優(yōu)先級優(yōu)先順序依次為(1級最優(yōu)先,余下類推)第1級: ()紀(jì)2級:+ - ! instanceof第3級:new第4級:* %第5級:+ -第6級: = =第8級:= !第9級:第10級:第11級:!第12級:紀(jì)14級:?:第13級:|第15級: + - * /第16級: ! = =記住這些優(yōu)先次序是困難的,個較好的方法是使用括號(),比如:ab & bc & ca 可以用括號寫為 (ab) & (bc) & (ca) 這樣即清晰易懂,也不易出錯。三、表達(dá)式表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語法形式組成的符號序列。個常量或一個變量名字是最簡單的表達(dá)式,其值即該常量或變量的值。表達(dá)式的值還可以用作其他運(yùn)算的操作數(shù),形成更復(fù)雜的表達(dá)式。表達(dá)式的類型由運(yùn)算以及參與運(yùn)算的操作數(shù)的類型決定,可以是簡單類型,也可以是復(fù)合類型,如下面的例子所示:布爾型表達(dá)式: x&y|z;整型表達(dá)式:num1十num2;/Bc/sjk/VFP/VFPJC/200511/8420.html順序結(jié)構(gòu):輸入與輸出一、選擇題(1)有以下程序main() int m,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%dn,m,n,p);若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是 A)m=123n=456p=789B)m=123 n=456 p=789C)m=123,n=456,p=789D)123 456 789(2) 有以下程序main() int m=0256,n=256;printf(%o %on,mn,n);程序運(yùn)行后的輸出結(jié)果是A) 0256 0400 B) 0256 256 C) 256 400 D) 400 400 (3) 有以下程序main() int a=666,b=888;printf(%dn,a,b);程序運(yùn)行后的輸出結(jié)果是A) 錯誤信息 B) 666 C) 888 D) 666,888 (4) 有以下程序main( )int x=102,y=012; printf(“%2d,%2dn”,x,y); 執(zhí)行后輸出結(jié)果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(5) 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,a,c,f,x);程序運(yùn)行后的輸出結(jié)果是A) 1 65 1 6.5 B) 1 65 1.5 6.5C) 1 65 1.0 6.5 D) 2 65 1.5 6.5(6) 有定義語句:int x,y;, 若要通過scanf(%d,%d,&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是A) 11 12回車B) 11,12回車C) 11,12回車 D) 11,回車12回車(7) 設(shè)有如下程序段:int x=2002,y=2003;printf(%dn,(x,y);則以下敘述中正確的是A) 輸出語句中格式說明符的個數(shù)少于輸出項(xiàng)的個數(shù),不能正確輸出B) 運(yùn)行時產(chǎn)生出錯信息C) 輸出值為2002D) 輸出值為2003(8)若有以下程序段(n所賦的是八進(jìn)制數(shù))int m=32767,n=032767printf(%d,%o/n,m,n);執(zhí)行后輸出結(jié)果是A) 32767,32767 B) 32767,032767C) 32767,77777 D) 32767,077777(9)若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(%Xn,m);執(zhí)行后輸出結(jié)果是A) 0X0 B) 0x0 C) 0 D) 0XABC(10) 已知i、j、k為int型變量,若從鍵盤輸入:1,2,3,使i的值為1、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語句是A) scanf(“%2d%2d%2d”,&i,&j,&k);B) scanf(“%d %d %d”,&i,&j,&k);C) scanf(“%d,%d,%d”,&i,&j,&k);D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);(11) 設(shè)有定義:long x=-123456L;,則以下能夠正確輸出變量x值的語句是A)printf(“x=%dn”,x); B) printf(“x=%1dn”,x);C)printf(“x=%8dLn”,x); D)printf(“x=%LDn”,x);(12) 以下程序段的輸出結(jié)果是int a=1234;printf(%2dn,a);A) 12 B) 34 C) 1234 D) 提示出錯、無結(jié)果(13) x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是A) INPUT x、y、z; B) scanf(“%d%d%d”,&x,&y,&z);C) scanf(“%d%d%d”,x,y,z); D) read(“%d%d%d”,&x,&y,&z);(14) 若變量已正確說明為float類型,要通過語句scanf(“%f %f %f ”,&a,&b,&c);給a賦于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:A) 10 B) 10.0,22.0,33.02233C) 10.0 D) 10 2222.0 33.0 33(15) 有如下程序main0 int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);運(yùn)行該程序的輸出結(jié)果是A) 3 4B) 4 2C) 4 3 D) 3 3(16) 下列程序執(zhí)行后的輸出結(jié)果是(小數(shù)點(diǎn)后只寫一位)A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main() double d; float f; ling l; int i;i=f=1=d=20/3;printf(%d %ld %f %f n, i,l,f,d);(17) 以下說法中正確的是A) #define和printf都是C語句 B) #define是C語句,而printf不是C) printf是C語句,但#define不是 D) #define和printf都不是C語句(18) 以下程序的輸出結(jié)果是A) 17,021,0x11 B) 17,17,17B) 17,0x11,021 D) 17,21,11main( ) int k=17;printf(%d,%o,%x n,k,k,k);(19) 以下敘述中正確的是A) 輸入項(xiàng)可以是一個實(shí)型常量,如:scakf(%f,3.5);B) 只有格式控制,沒有輸入項(xiàng),也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scakf(a=%d,b=%d);C) 當(dāng)輸入一個實(shí)型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點(diǎn)后的位數(shù),例如:scakf(%4.2f,&f);D) 當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scakf(%f,&f);(20) 若有以下定義和語句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);則輸出結(jié)果是:A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10(21) 請讀程序片段:int i=65536; printf(%dn,i);上面程序片段的輸出結(jié)果是A) 65536 B) 0 C) 有語法錯誤,無輸出結(jié)果 D) -1(22) 若x和y都是int型變量,x=100,y=200,且有下面的程序片段:printf(%d,(x,y);上面程序片段的輸出結(jié)果是A) 200 B) 100 C) 100 200 D) 輸出格式符不夠,輸出不確定的值(23) 請讀程序:#includemain() int a; float b, c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d, b=%f, c=%fn, a, b, c);若運(yùn)行時從鍵盤上輸入9876543210(表示回車),則上面程序的輸出結(jié)果是A) a=98, b=765, c=4321 B) a=10, b=432, c=8765C) a=98, b=765.000000, c=4321.000000 D) a=98, b=765.0, c=4321.0(24)以下程序的輸出結(jié)果是【24】 。# include # include main() int a=1,b=4,c=2;float x=10.5 , y=4.0 , z;z=(a+b)/c+sqrt(double)y)*1.2/c+x;pritnf(%fn,z); A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000(25)以下程序的輸出結(jié)果是【25】 。# include main() int a=2,c=5;printf(a=%d,b=%dn,a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D) a=%d,b=%d(26) 執(zhí)行下面程序中的輸出語句,a的值是A) 65B) 20 C) 15D) 10main() int a;printf(%dn,(a=3*5,a*4,a+5);二、填空題:(1)以下程序運(yùn)行后的輸出結(jié)果是 【1】 。main() int x=0210; printf(%Xn,x);(2)以下程序運(yùn)行后的輸出結(jié)果是 【2】 。main() char c; int n=100;float f=10; double x;x=f*=n/=(c=50);printf(%d %fn,n,x);(3)以下程序運(yùn)行時若從鍵盤輸入:10 20 30。輸出結(jié)果是 .#include main() int i=0,j=0,k=0;scanf(%d%*d%d,&i,&j,&k);printf(%d%d%dn,i,j,k);(4) 以下程序段的輸出結(jié)果是 【4】 。int i=9;printf(%on,i);(5) 以下程序運(yùn)行后的輸出結(jié)果是 【5】 。main() int a,b,c;a=25;b=025;c=0x25;printf(%d %d %dn,a,b,c);(6) 有以下語句段int n1=10,n2=20;printf(“ 【6】 ”,n1.n2); 要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁?。n1=10n2=20(7)若有語句int i=-19,j=i%4;printf(%dn,j);則輸出結(jié)果是【7】。(8)若有程序main() int i,j;scanf(i=%d,j=%d;&i,&j);printf(i=%d,j=%dn,i,j);要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入【8】。(9) 以下程序的輸出結(jié)果是【9】 。main() int a=177;printf(%on,a);(10) 以下程序的輸出結(jié)果是【10】 。main() int a=0a+=(a=8);printf(%dn,a); (11)以下程序的輸出結(jié)果是 【11】 main() int a=1, b=2;a=a+b; b=a-b; a=a-b;printf(“%d,%dn”, a, b ); (12)下列程序的輸出結(jié)果是16.00,請?zhí)羁?。main() int a=9, b=2;float x= 【12】 , y=1.1,z;z=a/2+b*x/y+1/2;printf(“%5.2fn”, z ); (13) 以下程序的輸出結(jié)果是 13 。 main() unsigned short a=65536; int b;printf(“%dn”,b=a);(14) 若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是 【14】 。int b,c; float a;scanf(%f,%d,c=%d,&a,&b,&c);(15) 若想通過以下輸入語句給a賦于1,給b賦于2,則輸入數(shù)據(jù)的形式應(yīng)該是 【15】 。int a,b;scanf(a=%b,b=%d,&a,&b);答案:一、選擇題01) A 02) C 03) B 04) C 05) B 06) A 07) D 08) A 09) C 10) C11) B 12) C 13) B 14) B 15) D 16) A 17) D 18) D 19) D 20) A21) B 22) A 23) C 24) C 25) D 26) C 二、填空題(1) 88(2) 2 20.000000(3) 10 30 0 (4) 11(5) 25 21 37(6) n1=%dnn2=%d(7) -3(8) i=10,j=20(9) 261(10) 16(11) 2,1(12) 6.6(13) 0(14) 5.0,4,c=3(15) a=1,b=2水滴石穿C語言之指針、數(shù)組和函數(shù)基本解釋1、指針的本質(zhì)是一個與地址相關(guān)的復(fù)合類型,它的值是數(shù)據(jù)存放的位置(地址);數(shù)組的本質(zhì)則是一系列的變量。2、數(shù)組名對應(yīng)著(而不是指向)一塊內(nèi)存,其地址與容量在生命期內(nèi)保持不變,只有數(shù)組的內(nèi)容可以改變。指針可以隨時指向任意類型的內(nèi)存塊,它的特征是“可變”,所以我們常用指針來操作動態(tài)內(nèi)存。3、當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時,該數(shù)組自動退化為同類型的指針。 問題:指針與數(shù)組聽說char a與char *a是一致的,是不是這樣呢?答案與分析:指針和數(shù)組存在著一些本質(zhì)的區(qū)別。當(dāng)然,在某種情況下,比如數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時,由于該數(shù)組自動退化為同類型的指針,所以在函數(shù)內(nèi)部,作為函數(shù)參數(shù)傳遞進(jìn)來的指針與數(shù)組確實(shí)具有一定的一致性,但這只是一種比較特殊的情況而已,在本質(zhì)上,兩者是有區(qū)別的。請看以下的例子:char a = Hi, pig!;char *p = Hi, pig!;上述兩個變量的內(nèi)存布局分別如下:數(shù)組a需要在內(nèi)存中占用8個字節(jié)的空間,這段內(nèi)存區(qū)通過名字a來標(biāo)志。指針p則需要4個字節(jié)的空間來存放地址,這4個字節(jié)用名字p來標(biāo)志。其中存放的地址幾乎可以指向任何地方,也可以哪里都不指,即空指針。目前這個p指向某地連續(xù)的8個字節(jié),即字符串“Hi, pig!”。另外,例如:對于a2和p2,二者都返回字符i,但是編譯器產(chǎn)生的執(zhí)行代碼卻不一樣。對于a2,執(zhí)行代碼是從a的位置開始,向后移 動2兩個字節(jié),然后取出其中的字符。對于p2,執(zhí)行代碼是從p的位置取出一個地址,在其上加2,然后取出對應(yīng)內(nèi)存中的字符。問題:數(shù)組指針為什么在有些時候我們需要定義指向數(shù)組而不是指向數(shù)組元素的指針?如何定義?答案與分析:使用指針,目的是用來保存某個元素的地址,從而來利用指針獨(dú)有的優(yōu)點(diǎn),那么在元素需要是數(shù)組的情況下,就理所當(dāng)然要用到指向數(shù)組的指針,比如在高維需要動態(tài)生成情況下的多維數(shù)組。定義例子如下: int (*pElement)2。下面是一個例子: int array23 = 1,2,3,4,5,6;int (*pa)3; /定義一個指向數(shù)組的指針 pa = &array0; / &符號能夠體現(xiàn)pa的含義,表示是指向數(shù)組的指針printf (%d, (*pa)0); /將打印array00,即1 pa+; / 猜一猜,它指向誰?array1?對了!printf (%d, (*pa)0); / 將打印array10,即4上述這個例子充分說明了數(shù)組指針一種指向整個數(shù)組的指針的定義和使用。需要說明的是,按照我們在第四篇討論過的,指針的步進(jìn)是參照其所指對象的大小的,因此,pa+將整個向后移 動一個數(shù)組的尺寸,而不是僅僅向后移 動一個數(shù)組元素的尺寸。問題:指針數(shù)組有如下定義:struct UT_TEST_STRUCT *pTo2MAX_NUM;請分析這個定義的意義,并嘗試說明這樣的定義可能有哪些好處?答案與分析:前面我們談了數(shù)組指針,現(xiàn)在又提到了指針數(shù)組,兩者形式很相似,那么,如何區(qū)分兩者的定義呢?分析如下:數(shù)組指針是:指向數(shù)組的指針,比如 int (*pA)5。指針數(shù)組是:指針構(gòu)成的數(shù)組,比如int *pA5。至于上述指針數(shù)組的好處,大致有如下兩個很普遍的原因:a)、各個指針內(nèi)容可以按需要動態(tài)生成,避免了空間浪費(fèi)。b)、各個指針呈數(shù)組形式排列,索引起來非常方便。在實(shí)際編程中,選擇使用指針數(shù)組大多都是想要獲得如上兩個好處。 問題:指向指針的指針在做一個文本處理程序的時候,有這樣一個問題:什么樣的數(shù)據(jù)結(jié)構(gòu)適合于按行存儲文本?答案與分析:首先,我們來分析文本的特點(diǎn),文本的主要特征是具有很強(qiáng)的動態(tài)性,一行文本的字符個數(shù)或多或少不確定,整個文本所擁有的文本行數(shù)也是不確定的。這樣的特征決定了用固定的二維數(shù)組存放文本行必然限制多多,缺乏靈活性。這種場合,使用指向指針的指針有很大的優(yōu)越性?,F(xiàn)實(shí)中我們嘗試用動態(tài)二維數(shù)組(本質(zhì)就是指向指針的指針)來解決此問題:圖示是一個指針數(shù)組。所謂動態(tài)性指橫向(對應(yīng)每行文本的字符個數(shù))和縱向(對應(yīng)整個文本的行數(shù))兩個方向都可以變化。就橫向而言,因?yàn)橹羔樀撵`活性,它可以指向隨意大小的字符數(shù)組,實(shí)現(xiàn)了橫向動態(tài)性。就豎向而言,可以動態(tài)生成及擴(kuò)展需要的指針數(shù)組的大小。下面的代碼演示了這種動態(tài)數(shù)組的用途:/ 用于從文件中讀取以 0結(jié)尾的字符串的函數(shù)extern char *getline(FILE *pFile);FILE *pFile;char

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論