




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、簡(jiǎn)單的C程序介紹C語(yǔ)言程序的結(jié)構(gòu):例順序表插入。
#include“stdio.h” /*包含預(yù)處理語(yǔ)句*//*在順序表中第i個(gè)數(shù)據(jù)元素前插入數(shù)據(jù)元素x*/intsxbcr(inti,intx,intv[],int*p){intj,n;n=*p;if((i<1)||(i>n+1))return(0);else{for(j=n;n>=i;j--)v[j]=v[j-1];v[j]=x;*p=++n;return(1);}}/*Thisisthemainprogram*/main(){staticinta[]={3,2,7,1,9};inti,x,n=5;scanf(“%d,%d”,&i,&x);/*讀入兩個(gè)整數(shù),存入變量i和x中*/sxbcr(i,x,a,&n);/*調(diào)用順序表插入函數(shù)*/for(i=0;i<n;i++)printf("%d,",a[i]);printf("\nn=%d\n",n);}通過(guò)以上例子可以看出:1.C程序是由函數(shù)構(gòu)成的。每個(gè)程序由一個(gè)或多個(gè)函數(shù)組成,其中必須有且僅有一個(gè)主函數(shù)main()。2.一個(gè)可執(zhí)行的C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論其在整個(gè)程序中的位置如何。3.每條語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)(;)。
說(shuō)明:在以下三種情況下不允許有分號(hào):
a.所定義的函數(shù)的名稱后面不使用分號(hào);
b.在右花括號(hào)“}”后面不使用分號(hào);
c.預(yù)處理語(yǔ)句后面不使用分號(hào)。sum();{……
}while(total<=2000){limit++;total=total+limit;};#include“stdio.h”;4.C對(duì)輸入輸出實(shí)行函數(shù)化。5.C程序書(shū)寫(xiě)格式自由,一行內(nèi)可以寫(xiě)幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫(xiě)在多行上。6.可用/*……*/對(duì)C程序中的任何部分作注釋,注釋可以寫(xiě)在程序的任何位置上,“/*”與“*/”也可不在同一行上。7.在C語(yǔ)言中,大小寫(xiě)字母是有區(qū)別的。(C語(yǔ)言習(xí)慣用小寫(xiě)字母)
8、文件包含文件包含是指一個(gè)源文件可以將另一個(gè)源文件的全部?jī)?nèi)容包含進(jìn)來(lái)。使用命令:#include”文件名“例:#include<stdio.h>#include<math.h>//系統(tǒng)提供的被包含文件
#include“file1.h”//用戶自己編寫(xiě)的被包含文件說(shuō)明:1.一個(gè)include命令只能指定一個(gè)被包含文件。2.文件名可以用雙引號(hào)或尖括號(hào)括起來(lái)。3.被包含文件與所在文件經(jīng)預(yù)編譯后成為一個(gè)文件。1.編輯:選擇適當(dāng)?shù)木庉嫵绦?將C語(yǔ)言源程序通過(guò)鍵盤(pán)輸入到計(jì)算機(jī)中,并以文件的形式存入到磁盤(pán)中(.C)2.編譯:即將源程序翻譯成機(jī)器語(yǔ)言程序的過(guò)程。編譯出來(lái)的程序稱為目標(biāo)程序(.OBJ)3.連接:編譯后生成的目標(biāo)文件經(jīng)過(guò)連接后生成最終的可執(zhí)行程序(.EXE)二、C程序的開(kāi)發(fā)過(guò)程三、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式1、C語(yǔ)言數(shù)據(jù)類型
整型(int,shortint,longint)
字符型(char)單精度型
(float0
算術(shù)類型實(shí)型(浮點(diǎn)型)
基本類型
枚舉類型雙精度型(double)
指針類型數(shù)據(jù)類型
數(shù)組
構(gòu)造類型結(jié)構(gòu)體類型共用體類型
2、常量數(shù)值常量例如:10,3,2.68等符號(hào)常量即用一個(gè)符號(hào)代表一個(gè)常量例如:#definePI3.1415926符號(hào)常量必須先定義后才能用它表示一個(gè)數(shù)值。符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值。符號(hào)常量名習(xí)慣用大寫(xiě)字母表示。3、變量變量名由標(biāo)識(shí)符表示,只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。例如:下列標(biāo)識(shí)符中,不合法的變量名有:
M.D.John12%gf1add_ce36age&5thclasslotus-1-2-3cd*ef
說(shuō)明:
變量要“先定義,后使用”定義格式:類型說(shuō)明符標(biāo)識(shí)符1,…,標(biāo)識(shí)符n
例如:intx,y,z;floata,b,c,d;大小寫(xiě)字母是兩個(gè)不同的字符,C變量名習(xí)慣用小寫(xiě)字母表示。4、字符型數(shù)據(jù)(1)字符常量
1.字符常量:用單引號(hào)括起來(lái)的一個(gè)字符。例如:‘a(chǎn)’‘A’‘$’‘!’
注:‘a(chǎn)’與‘A’是不同的字符常量(2)轉(zhuǎn)義字符:以一個(gè)‘\’開(kāi)頭的字符序列例如:‘\n’換行‘\t’橫向跳格(水平制表)‘\b’退格‘\v’豎向跳格(垂直制表)‘\r’回車‘\f’走紙換頁(yè)‘\a’報(bào)警‘\0’空字符(3)字符串常量1.定義:括在一對(duì)雙引號(hào)之內(nèi)的字符序列或轉(zhuǎn)義字符序列稱為字符串常量。例如:“Howareyou!”“a”“*abc\n\t”‘b’
與‘B’是否相同?‘b’
與“b”是否相同?b為98,B為66'b'是字符常量,“b"是字符串常量(4)字符變量定義形式:char
標(biāo)識(shí)符1,標(biāo)識(shí)符2,…
,標(biāo)識(shí)符n
例如:char
c1,c2,c3,ch;c1=‘a(chǎn)’;c2=‘b’;c3=‘c’;ch=‘d’;說(shuō)明:字符變量在內(nèi)存中占一個(gè)字節(jié)。(5)變量賦初值在定義變量的同時(shí)為變量賦初值:類型標(biāo)識(shí)符變量名=常量或常量表達(dá)式例如:intx=10;charch=‘a(chǎn)’;變量賦初值允許使用符號(hào)常量例如:#definePI3.1415926
…...floatx=PI;…...
可對(duì)被定義的變量的一部分賦初值例如:inta,b,c=1,d=2;可對(duì)幾個(gè)變量賦以同一個(gè)初值例如:inta=6,b=6,c=6;
不要寫(xiě)為:inta=b=c=6;(1)基本的算術(shù)運(yùn)算符:+-
*/%說(shuō)明:上述運(yùn)算符均為雙目運(yùn)算符(即有兩個(gè)操作數(shù))“+”“-”作單目運(yùn)算符時(shí)分別為正值、負(fù)值運(yùn)算符。在“/”運(yùn)算中,若操作數(shù)均為整數(shù),則執(zhí)行整除運(yùn)算,舍去小數(shù)部分。例如:5/3=1“%”要求兩側(cè)均為整數(shù),“%”運(yùn)算不能用于float和double型數(shù)據(jù)例如:5%3=2
5、算術(shù)運(yùn)算符和算術(shù)表達(dá)式(2)自增、自減運(yùn)算符(++、--)作用:使變量的值增1或減1,如:++i,--i(使用之前,先使i的值加(減)1)i++,i--(使用之后,使i的值加(減)1)
++i先執(zhí)行i=i+1,再使用i的值
i++先使用i的值,再執(zhí)行i=i+1例如:inta=1,b;b=++a;b=a++;說(shuō)明:為單目運(yùn)算符自增、自減運(yùn)算符為右結(jié)合性(即自右至左)。例如:-a++
-(a++)6、賦值運(yùn)算符和賦值表達(dá)式(1)賦值運(yùn)算符(=)形式:變量名=常量或表達(dá)式作用:將右邊常量或表達(dá)式的值賦給左邊的變量例如:a=3;b=c+d;(2)復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符:在賦值符“=”之前加上其它運(yùn)算符共有10種復(fù)合賦值運(yùn)算符
+=,-=,*=,/=,%=,
<<=,>>=,&=,^=,|=例如:a+=3等價(jià)于a=a+3x*=y+3等價(jià)于x=x*(y+3)7、關(guān)系運(yùn)算符和關(guān)系表達(dá)式C語(yǔ)言中的關(guān)系運(yùn)算符有6種。<、<=、>、>=、==、!=優(yōu)先次序:前4種同級(jí),高于后2種(后2種同級(jí))例如:
x!=y
s-d<=fa>b+cb<d==cc==e>d
算術(shù)運(yùn)算符(高)關(guān)系運(yùn)算符賦值運(yùn)算符(低)(s-d)<=fa>(b+c)(b<d)==cc==(e>d)8、數(shù)據(jù)輸入輸出(1)putchar函數(shù)(字符輸出函數(shù)):向終端輸出一個(gè)字符。(2)getchar函數(shù)(字符輸入函數(shù)):從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符.例:
#include<stdio.h>main(){charc;c=getchar();putchar(c);}
運(yùn)行時(shí)鍵入字符‘a(chǎn)’,則其輸出為
a(3)printf函數(shù)(格式輸出函數(shù))作用:向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)。(一)printf函數(shù)的一般格式:
printf(格式控制,輸出表列)注:“格式控制”是用雙引號(hào)括起來(lái)的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息:1.格式說(shuō)明,由“%”和格式字符組成,如%d,%f等.它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說(shuō)明總是由“%”字符開(kāi)始的。2.普通字符,即需要原樣輸出的字符。(4)scanf
函數(shù)(格式輸入函數(shù))一般形式
scanf(格式控制,地址表列)“格式控制”的含義同printf函數(shù),“地址表列”是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址.例如:inta,b,c;scanf(“%d%d%d”,&a,&b,&c);其中“%d%d%d”表示按十進(jìn)制整數(shù)形式輸入數(shù)據(jù).輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用回車鍵、跳格鍵tab。四、函數(shù)與程序結(jié)構(gòu)C程序的執(zhí)行代碼由函數(shù)構(gòu)成。程序至少包含主函數(shù)(main()函數(shù)),還可以包含其它函數(shù)。Main()函數(shù)是最基本的函數(shù),c程序以main()函數(shù)作為程序的主程序。程序運(yùn)行時(shí),從它開(kāi)始執(zhí)行。Main()函數(shù)可調(diào)用其它函數(shù)。其它函數(shù)不能調(diào)用main()函數(shù),但可以相互調(diào)用。例8.1:輸入三個(gè)整數(shù),計(jì)算它們的和并輸出運(yùn)算結(jié)果。main(){inta,b,c,sum;scanf("%d,%d,%d",&a,&b,&c);sum=add(a,b,c);printf("sum=%d\n",sum);}intadd(intx,inty,intz){ints;s=x+y+z;returns;}1、函數(shù)定義語(yǔ)法:[類型說(shuō)明符]函數(shù)名(形式參數(shù)表)函數(shù)體含義:類型說(shuō)明符:指定函數(shù)值的類型。若該項(xiàng)缺省,表示函數(shù)值為int
型。若函數(shù)沒(méi)有值,應(yīng)寫(xiě)作void.函數(shù)名:標(biāo)識(shí)符,用于標(biāo)識(shí)函數(shù),并用其來(lái)調(diào)用函數(shù)。
函數(shù)名字有值,它代表函數(shù)的入口地址。形式參數(shù)表:簡(jiǎn)稱形參表。一般來(lái)說(shuō),計(jì)算函數(shù)需要多少原始數(shù)據(jù),函數(shù)的形參表中就有多少個(gè)形參,每個(gè)形參存放一個(gè)數(shù)據(jù)。函數(shù)體:是一段程序,它實(shí)現(xiàn)函數(shù)的功能。2、形式參數(shù)和實(shí)際參數(shù)形式參數(shù):在定義函數(shù)時(shí)函數(shù)名后面括弧中的變量名,簡(jiǎn)稱形參。實(shí)際參數(shù):在調(diào)用函數(shù)時(shí)函數(shù)名后面括弧中的表達(dá)式,簡(jiǎn)稱實(shí)參。[例8.4]
main(){inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“Maxis%d”,c);}/*調(diào)用max函數(shù),a,b為實(shí)參*/max(intx,inty)
/*定義有參函數(shù)max,x,y,為形參*/{intz;z=x>y?x:y;return(z);
}
形參與實(shí)參、函數(shù)名與返回值之間的關(guān)系
c=max(a,b);-----------------------max(intx,inty){……return(z);}
運(yùn)行結(jié)果:7,8Maxis8
實(shí)參:在運(yùn)行時(shí)
把值傳給函數(shù)形參:通知系統(tǒng)要預(yù)留內(nèi)存位置把函數(shù)的結(jié)果賦給函數(shù)名3、return語(yǔ)句1.功能:函數(shù)體語(yǔ)句執(zhí)行結(jié)束后,使函數(shù)保存計(jì)算結(jié)果并回到程序原來(lái)的位置繼續(xù)計(jì)算。語(yǔ)法:return[表達(dá)式]2.說(shuō)明:函數(shù)的返回值是通過(guò)return語(yǔ)句獲得的。return語(yǔ)句將被調(diào)用函數(shù)的一個(gè)確定的值帶回主調(diào)函數(shù)中去。一個(gè)函數(shù)可以有一個(gè)以上的return語(yǔ)句,也可以沒(méi)有。return后面的值可以是一個(gè)表達(dá)式,例如:z=x>y?x:y;returnz;return(x>y?x:y);如果被調(diào)用函數(shù)沒(méi)有return語(yǔ)句,或return語(yǔ)句不帶表達(dá)式,函數(shù)的值不確定。return語(yǔ)句的類型應(yīng)該與函數(shù)定義時(shí)指定函數(shù)值的類型一致。如果函數(shù)類型和return語(yǔ)句的類型不一致,以函數(shù)類型為準(zhǔn)。對(duì)數(shù)值型數(shù)據(jù),可以自動(dòng)進(jìn)行類型轉(zhuǎn)換。既函數(shù)類型決定返回值的類型。如果函數(shù)不返回值,可以將函數(shù)定義為“空類型”void。例如voidinput()4、函數(shù)調(diào)用首先被調(diào)用函數(shù)必須是已存在的函數(shù),如用戶自定義函數(shù)或庫(kù)函數(shù)。如果使用庫(kù)函數(shù),需要在文件的開(kāi)頭用#include命令將需要的庫(kù)函數(shù)包含到文件中。If語(yǔ)句用來(lái)判定給定的條件是否滿足,根據(jù)判定的結(jié)果決定執(zhí)行下面給出的語(yǔ)句.(1)if語(yǔ)句的三種形式
if(表達(dá)式)語(yǔ)句例:if(x<y)y=x;
if(表達(dá)式)語(yǔ)句1else語(yǔ)句2
例:if(x>y)printf(“%d”,x)elseprintf("%d",y);
4、if語(yǔ)句
if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2
elseif(表達(dá)式3)語(yǔ)句3….elseif(表達(dá)式m)語(yǔ)句m
else語(yǔ)句n
注:上述格式中語(yǔ)句可以表示一個(gè)語(yǔ)句或多個(gè)語(yǔ)句,若多個(gè)語(yǔ)句則用{}括起來(lái)。
例:求#include<stdio.h>main(){intnumb1,sign;printf(“Pleaseinputannumber\n”);scanf(“%d”,&numb1);if(numb1<0)sign=-1;elseif(numb1==0)sign=0;elsesign=1;printf(“sign(x)=%d\n”,sign);}
注:最后else與其之最近的if配對(duì)。
}
內(nèi)嵌if}內(nèi)嵌if或if()
if()語(yǔ)句1
else
if()語(yǔ)句2
else語(yǔ)句3if()if()語(yǔ)句1
else語(yǔ)句2elseif()語(yǔ)句3else語(yǔ)句4}
內(nèi)嵌if(2)if語(yǔ)句的嵌套
在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句的形式。一般格式如下:例如:已知編一個(gè)程序,輸入一個(gè)
x的值,輸出y值。程序?yàn)椋?/p>
main(){intx,y; scanf(“%d”,&x); if(x<0)y=-1; elseif(x==0)y=0;elsey=1; printf(“x=%d,y=%d\n”,x,y);
}5、條件運(yùn)算符C語(yǔ)言增設(shè)了一個(gè)條件操作符,它是唯一的三目操作符。格式:表達(dá)式1?表達(dá)式2:表達(dá)式3功能:判斷表達(dá)式1的值,該值為“非0”,則取表達(dá)式2
的值,為“0”時(shí),取表達(dá)式3的值。如:max=a>b?a:b若a=3,b=2,則max=說(shuō)明:(1)條件運(yùn)算符優(yōu)于賦值運(yùn)算符。(2)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆薄?/p>
例1:當(dāng)a=1,b=2,c=3,d=4時(shí),表達(dá)式a>b?a:c>d?c:d,值為:?(3)可以用條件表達(dá)式取代一般的if結(jié)構(gòu)語(yǔ)句。如:if(a>b)printf(“%d”,a)elseprintf(“%d”,b);
等價(jià)于a>b?printf(“%d”,a):printf(“%d”,b)
4switch語(yǔ)句問(wèn)題:為什么引出switch語(yǔ)句?該語(yǔ)句為開(kāi)關(guān)語(yǔ)句,解決多分支的情況。格式:switch(表達(dá)式)
{case(常量表達(dá)式1):語(yǔ)句塊1; case(常量表達(dá)式2):語(yǔ)句塊2;
case(常量表達(dá)式m):語(yǔ)句塊m; default:語(yǔ)句塊n;
}說(shuō)明:(1)表達(dá)式可以是整型、字符型、枚舉數(shù)據(jù)型的表達(dá)式。
6、switch語(yǔ)句和break語(yǔ)句(2)計(jì)算表達(dá)式的值;
(3)找到與表達(dá)式的值相同的case常量表達(dá)式,執(zhí)行該case后邊的語(yǔ)句塊,之后依次往下執(zhí)行語(yǔ)句塊。例如:
switch(grade){case‘A’:printf(“85~100、”);
case’B’:printf(“70~84、”); case’C’:printf(“60~69\n”);case‘D’:printf(“<60、”); default:printf(“error”);}若grade=‘A’時(shí),結(jié)果為:
85~100、70~84、60~69<60、error
如果不想這樣輸出,則可用break語(yǔ)句處理。break語(yǔ)句:格式:break;功能:終止與每一個(gè)常量有關(guān)的語(yǔ)句序列,省略它則繼續(xù)執(zhí)行下一個(gè)case后的語(yǔ)句塊。上述程序可寫(xiě)成多分支情況:
switch(grade){case‘A’:printf(“85~100\n”)break; case’B’:printf(“70~84\n”)break; case’C’:printf(“60~69\n”)break;case‘D’:printf(“<60\n”)break; default:printf(“error”);}若grade=‘A’時(shí),輸出結(jié)果為?當(dāng)grade=‘B’時(shí),輸出結(jié)果為:70~847、循環(huán)控制
引入循環(huán)控制語(yǔ)句的作用
當(dāng)滿足一定條件時(shí),重復(fù)執(zhí)行一段程序.設(shè)置循環(huán)需要考慮的問(wèn)題
循環(huán)初值,循環(huán)條件的設(shè)置,循環(huán)條件的修改C語(yǔ)言中可用以下語(yǔ)句實(shí)現(xiàn)循環(huán)用goto語(yǔ)句和if語(yǔ)句構(gòu)成循環(huán)用while語(yǔ)句用do—while語(yǔ)句用for語(yǔ)句
while語(yǔ)句“當(dāng)型”循環(huán)結(jié)構(gòu)while(表達(dá)式)語(yǔ)句執(zhí)行過(guò)程:
do—while語(yǔ)句“直到型”循環(huán)結(jié)構(gòu)do語(yǔ)句while(表達(dá)式);表達(dá)式語(yǔ)句假真表達(dá)式語(yǔ)句假真
先判斷條件,后執(zhí)行語(yǔ)句先執(zhí)行語(yǔ)句,后判斷條件for語(yǔ)句語(yǔ)法:for([表達(dá)式1];[表達(dá)式2];[表達(dá)式3])語(yǔ)句特點(diǎn):既可以用于循環(huán)次數(shù)已確定情況,也可以用于循環(huán)次數(shù)不確定只給出循環(huán)結(jié)束條件的情況.使用靈活,完全可代替while.執(zhí)行過(guò)程:表達(dá)式2表達(dá)式1語(yǔ)句表達(dá)式3假真說(shuō)明:(1)for語(yǔ)句最簡(jiǎn)單的應(yīng)用形式:
for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)例如:for(i=1;i<=10;i++)s=s*i;(2)三個(gè)表達(dá)式均可缺省,但起分割作用的兩個(gè)分號(hào)不可省略。例如:for(;;)
相當(dāng)于while(1)語(yǔ)句表達(dá)式1省略,應(yīng)在for之前對(duì)循環(huán)變量賦初值。表達(dá)式2省略,則不判斷條件,循環(huán)無(wú)終止進(jìn)行下去。表達(dá)式3省略,則應(yīng)另設(shè)法保證循環(huán)的結(jié)束。
(3)表達(dá)式1和表達(dá)式3可為逗號(hào)表達(dá)式例如:for(i=1,j=10;i<=j;i++,j--)k=i+j;三種循環(huán)語(yǔ)句的比較for語(yǔ)句和while語(yǔ)句先判斷條件,后執(zhí)行語(yǔ)句,故循環(huán)體有可能一次也不執(zhí)行,而do—while語(yǔ)句的循環(huán)體至少執(zhí)行一次。必須在while語(yǔ)句和do—while語(yǔ)句之前對(duì)循環(huán)體變量賦初值,而for語(yǔ)句可在表達(dá)式1中對(duì)循環(huán)變量賦初值。在循環(huán)次數(shù)已經(jīng)確定的情況下,習(xí)慣用for語(yǔ)句;而對(duì)于循環(huán)次數(shù)不確定只給出循環(huán)結(jié)束條件的問(wèn)題,習(xí)慣用while語(yǔ)句解決。五、一維數(shù)組1、一維數(shù)組的定義格式:類型說(shuō)明符數(shù)組名[常量表達(dá)式];如:intscore[10];floatclass1[30];說(shuō)明:數(shù)組名同變量名命名規(guī)則相同。數(shù)組名后是用方括號(hào)而不是圓括號(hào)。類型說(shuō)明符定義數(shù)組中元素的類型,可以是任何類型。常量表達(dá)式說(shuō)明數(shù)組元素的個(gè)數(shù)。不允許是變量,不能進(jìn)行動(dòng)態(tài)定義。數(shù)組下標(biāo)規(guī)定從0開(kāi)始。如:a[0],a[1],a[3],……,a[25]2、一維數(shù)組的引用數(shù)組元素的表示形式:數(shù)組名[下標(biāo)]數(shù)組元素的使用與變量相同如:a[3]=a[0]+a[i+1];
下標(biāo)可以為常量或變量例:main(){inti,sum=0,a[26];/*輸入數(shù)組a;*/for(i=0;i<26;i++)sum=sum+a[i];Printf("%d",sum);}3、一維數(shù)組的初始化(在運(yùn)行之前初始化)實(shí)現(xiàn)方法:對(duì)數(shù)組置初值。如:inta[5]={3,5,6,4,8};只給數(shù)組中一部分元素賦初值。如:
inta[9]={1,2};
則a[0]=1,a[1]=2,a[2]~a[8]值全為0。對(duì)數(shù)組元素全部置0。
inta[5]={0,0,0,0,0};
或:staticinta[5];
注意:定義成static數(shù)組,不賦初值,系統(tǒng)會(huì)自動(dòng)將全部元素賦以0值。六、指針變量地址:變量一定占用一個(gè)數(shù)據(jù)的存儲(chǔ)空間,該存儲(chǔ)空間的首地址稱變量地址。指針:一個(gè)變量的地址稱為該變量的指針。指針變量:若一個(gè)變量專用于存放另一個(gè)變量的地址(指針),則該變量稱為指針變量。若指針變量p的值等于變量x的地址,則說(shuō)指針變量p指向變量x1000351000pxX的值p的值X的內(nèi)存地址直接訪問(wèn):按變量地址存取變量值的方式。
間接訪問(wèn):將變量i的地址存放在另一內(nèi)存單元中。
如定義i_pointer為指針變量,i_pointer=&i;(1)先找到存放i的地址的單元地址(3010,3011);(2)取出i的地址(2000);(3)到2000,2001中取出i的值3
32000內(nèi)存用戶數(shù)據(jù)區(qū)…...69…...32000變量i變量j變量k變量i_poiter20002002200430102000i1、變量的指針和指向變量的指針變量指針變量定義的形式:
類型標(biāo)識(shí)符*標(biāo)識(shí)符變量名例如:float*pointer_x;int*pointer_i;作用:定義某些變量為指針類型,使之專門用于存放地址。注意:(1)*用于定義指針變量,但指針變量名不帶*
如int*point_i;
定義的指針變量為point_i,不是*point_i(2)一個(gè)指針變量只能指向同一類型的變量如int*point_i;point_i只能用于指向整型變量。
指針變量的引用(1)取地址運(yùn)算符&(2)指針運(yùn)算符*(取內(nèi)容或間接訪問(wèn))如:若有變量定義:inta,*pa;a為變量;&a就是a的地址;
pa為指針變量;*pa就是pa指向的變量;若pa=&a,則*pa實(shí)際就是a
。例如main(){inta,b;int*pa,*pb;a=100;b=10;pa=&a;pb=&b;printf(“%d,%d\n”,a,b);printf(“%d,%d\n”,*pa,*pb);}定義指針變量pa,pb將a的地址送pa將b的地址送pb輸出所指向的變量運(yùn)行結(jié)果為100,10100,10七、結(jié)構(gòu)體有時(shí),需將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體,以便于引用。這些數(shù)據(jù)是相互聯(lián)系的。如一個(gè)學(xué)生的有關(guān)信息:可采用結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)描述上述信息。例如:structstudent{intnum;charname[
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境電商物流風(fēng)險(xiǎn)承擔(dān)協(xié)議
- 二零二五年度北京小客車指標(biāo)車牌租賃及交通違章處理合同
- 2025年度高速公路隧道道閘系統(tǒng)安裝與通風(fēng)管理合同
- 2025年度航空航天產(chǎn)業(yè)融資服務(wù)合同
- 2025年度高速列車乘客搭乘免責(zé)協(xié)議
- 2025年度特色項(xiàng)目按摩師用工合同書(shū)
- 產(chǎn)品發(fā)布與推廣流程優(yōu)化指南
- 新辦公大樓落成慶典上的發(fā)言稿
- 聘用資料員勞動(dòng)協(xié)議
- 業(yè)務(wù)合作備忘錄及協(xié)議事項(xiàng)約定
- 《研學(xué)旅行課程設(shè)計(jì)》課件-研學(xué)課程設(shè)計(jì)計(jì)劃
- 中醫(yī)痹癥-課件
- 表面粗糙度等級(jí)對(duì)照表模板.doc
- GMP講課教案簡(jiǎn)述
- 新冀人版小學(xué)科學(xué)三年級(jí)下冊(cè)全冊(cè)教案(2022年春修訂)
- 東莞虎門架空線路拆除施工方案
- 尿液結(jié)晶教學(xué)課件
- 繪本《你很特別》
- 茶葉揉捻機(jī)總體設(shè)計(jì)方案的擬定
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院財(cái)務(wù)管理
- 粱、柱、板截面取值原則最終
評(píng)論
0/150
提交評(píng)論