绗叓绔 鏋勯犵被鍨 2
鍙戝竷: 2008-6-26 21:09 | 浣滆: admin | 鏌ョ湅: 35娆
8.8 閾捐〃
8.8.1 閾捐〃姒傝堪
闂鐨勬彁鍑猴細鎴戜滑瑕佽璁″瓨鏀句竴涓彮绾х殑瀛︾敓淇℃伅锛屽彲浠ラ噰鐢ㄦ暟缁勭殑鏂规硶锛岃瀛樻斁30涓鐢熷氨璁捐闀垮害涓30鐨勬暟缁勶紝瑕佸瓨鏀50涓鐢熷氨璁捐闀垮害涓50鐨勬暟缁勩傚亣濡傛垜浠簨鍏堝苟涓嶇煡閬撳鐢熶汉鏁帮紝灏卞繀椤诲皢鏁扮粍璁捐寰楄冻澶熷ぇ锛屼緥濡傦紝璁捐闀垮害涓100鐨勬暟缁勶紝浣嗗疄闄呭鐢熸暟鍙湁30锛岃繖鏍峰氨浼氶犳垚鍐呭瓨鐨勬氮璐广傛樉鐒剁敤鏁扮粍鍙傚悎浜庡凡鐭ラ暱搴︾殑鏁版嵁锛屽洜姝ゆ暟缁勫鍐呭瓨鐨勫崰鐢ㄦ槸闈欐佺殑锛岀▼搴忚繍琛岃繃绋嬩腑闀垮害鏄笉鍙樼殑銆
閾捐〃鏄竴绉嶅父瑙佺殑閲嶈鐨勬暟鎹粨鏋勩傚畠鏄姩鎬佸湴杩涜瀛樺偍鍒嗛厤鐨勪竴绉嶇粨鏋勶紝鍙互鍔ㄦ佺殑鍒嗛厤瀛樺偍绌洪棿锛岄渶瑕佸灏戝氨鍒嗛厤澶氬皯銆
涓绉嶇畝鍗曢摼琛ㄥ鍥8.14鎵绀猴細

鍥8.14
杩欎釜绠鍗曢摼琛ㄥ緢鍍忎竴闃熸墜鎷夌潃鎵嬪湴灏忔湅鍙嬶紝鏈夊ご锛屾湁灏撅紝涓棿鐨勫皬鏈嬪弸鎵嬫媺鐫鎵嬶紝鎴戜滑鍙互浠庡ご渚濇鏌ユ壘鍒板熬銆
鍦–璇█涓庢牱瀹炵幇杩欑閾捐〃鍛紵锛岃鍥炵瓟杩欎釜闂鎴戜滑鍐嶆潵鐪嬩竴鐪嬬粨鏋勪綋绫诲瀷鐨勫畾涔夛紝鎴戜滑鐭ラ亾缁撴瀯浣撶被鍨嬪彲浠ュ祵濂楀畾涔夛紝浠涔堝彨宓屽瀹氫箟鍛紵璇风湅涓嬮潰鐨勪緥瀛愩
struct date
{
int month;
int day;
int year;
};
struct student
{
int num;
char name[20];
char sex;
int age;
char addr[30];
struct date birthday; //宓屽瀹氫箟
};
鍦ㄧ粨鏋勪綋student涓紝瀹氫箟浜嗙粨鏋勪綋绫诲瀷鐨勬垚鍛樺彉閲忥紝杩欑瀹氫箟鍙粨鏋勪綋绫诲瀷鐨勫祵濂楀畾涔夛紝杩欑瀹氫箟涔熼伒寰厛瀹氫箟鍚庝娇鐢ㄧ殑鍘熷垯銆
鎸夎瀹氬湪涓涓粨鏋勪綋鐨勫畾涔変腑锛屽叾鎴愬憳绫诲瀷鍙互鏄櫎鏈韩缁撴瀯绫诲瀷涔嬪鐨勪换浣曞凡鏈夌被鍨嬨備篃鍙互鏄换浣曞凡鏈夌被鍨嬶紙鍖呮嫭鏈韩绫诲瀷鍦ㄥ唴锛夌殑鎸囬拡绫诲瀷銆傝繖灏卞憡璇夋垜浠粨鏋勪綋涓嶈兘杩涜闄ゆ寚閽堢被鍨嬫暟鎹垚鍛樼殑閫掑綊瀹氫箟銆
struct F
{
float data;
struct F maxdata; //閫掑綊瀹氫箟
};
涓婅堪閫掑綊瀹氫箟鍦–璇█涓槸涓嶅厑璁哥殑銆備絾鎸囬拡绫诲瀷鐨勯掑綊瀹氫箟鍙堟槸鍏佽鐨勶紝濡傦細
struct F
{
float data;
struct F *next;
};
杩欐槸鍥犱负鐢ㄤ笂杩扮被鍨嬪畾涔夊彉閲忔椂鏄寮杈熷瓨璐┖闂寸殑锛屽紑杈熺┖闂寸殑澶у皬鐢辨垚鍛樻墍鍗犵┖闂村ぇ灏忎箣鍜屽喅瀹氾紝濡傛灉鏄潪鎸囬拡鐨勯掑綊瀹氫箟锛岀粨鏋勪綋绫诲瀷鐨勬垚鍛樺苟涓嶇煡閬撹嚜宸辨墍鍗犵┖闂寸殑瀹為檯澶у皬锛屽洜姝ゅ氨鏃犳硶纭畾缁撴瀯浣撳彉閲忔墍鍗犵┖闂寸殑澶у皬锛屾墍浠ヨ繖绉嶅畾涔夋槸闈炴硶鐨勩備负浠涔堢粨鏋勪綋鎸囬拡鎴愬憳鍗村彲浠ラ掑綊瀹氫箟鍛紵杩欐槸鍥犱负鏃犺浠涔堢被鍨嬬殑鎸囬拡鍙橀噺鎵鍗犵殑绌洪棿鏄‘瀹氱殑锛岄兘鏄2涓瓧鑺傦紝锛16浣嶇殑缂栬瘧绯荤粺鏄2涓瓧鑺傦紝32浣嶇殑缂栬瘧绯荤粺鏄4 涓瓧鑺傦級鍥犳缁撴瀯浣撳彉閲忔墍鍗犵┖闂寸殑澶у皬鏄彲浠ョ‘瀹氱殑锛屾墍浠ヨ繖绉嶅畾涔夋槸鍚堟硶鐨勩
璁╂垜浠啀鍥炶繃澶存潵鐪嬬湅杩欎釜绠鍗曢摼琛細
閾捐〃鏈変竴涓滃ご鎸囬拡鈥濆彉閲忥紝鍥句腑浠ead琛ㄧず锛屽畠瀛樻斁涓涓湴鍧锛岃鍚屽娉ㄦ剰杩欎釜鍦板潃銆傝鍦板潃鎸囧悜涓涓滅粨鐐光濓紙鍦ㄩ摼琛ㄤ腑灏嗗厓绱犵О涓衡滅粨鐐光濓級锛屾瘡涓粨鐐瑰寘鎷袱閮ㄥ垎锛氫竴閮ㄥ垎鏄敤鎴烽渶瑕佺敤鐨勫疄闄呮暟鎹紙濡侫銆丅銆丆銆丏锛夛紝鍙︿竴閮ㄥ垎涓轰笅涓涓粨鐐圭殑鍦板潃銆傚彲浠ョ湅鍑猴紝head鎸囧悜绗竴涓粨鐐癸紝绗竴涓粨鐐规寚鍚戠浜屼釜缁撶偣锛岀洿鍒版渶鍚庝竴涓粨鐐癸紝鏈鍚庝竴涓粨鐐逛笉鍐嶆寚鍚戝叾浠栫粨鐐癸紝绉板畠涓衡滆〃灏锯濓紝瀹冪殑鍦板潃閮ㄥ垎涓衡淣ULL鈥濓紙琛ㄧず鈥滅┖鍦板潃鈥濓級锛岄摼琛ㄥ埌姝ょ粨鏉熴傚悓瀛︽兂涓鎯斥滅┖鍦板潃鈥濇寚鍚戜粈涔堝湴鏂癸紵
鍙互鐪嬪埌锛岃繖绉嶉摼琛ㄧ殑鏁版嵁缁撴瀯锛屽繀椤诲埄鐢ㄦ寚閽堢壒鎬ф墠鑳藉疄鐜般傚嵆涓涓粨鐐逛腑搴斿寘鍚竴涓寚閽堝彉閲忥紝鐢ㄥ畠瀛樻斁涓嬩竴缁撶偣鐨勫湴鍧锛屽鍥8.15鎵绀恒

鍥8.15
缁撶偣涓殑鏁版嵁鍩熺敤鏉ュ瓨鏀炬暟鎹紝鍦板潃鍩熺敤鏉ュ瓨鏀句笅涓涓粨鐐圭殑鍦板潃銆
鎴戜滑鐢ㄧ粨鏋勪綋绫诲瀷瀹氫箟鈥滅粨鐐光濄
struct student
{
long num;
float score;
struct srudent *next;
};
鏁版嵁鍩熶腑鐨勬暟鎹垜浠噰鐢ㄧ粰鎴愬憳鍙橀噺璧嬪肩殑鍔炴硶鏉ヨ祴鍊硷細濡
struct student stu;
stu.num=200401;
stu.score=89.5;绛夌瓑銆
鎸囬拡鍩熸庢牱璧嬪煎憿锛熸寚閽堝煙涓殑鍊兼槸涓嬩竴涓粨鐐圭殑鍦板潃锛岃鐪嬪浘8.16銆

鍥8.16
8.8.2 闈欐侀摼琛
渚 8.6 寤虹珛涓涓涓婂浘鎵绀虹殑绠鍗曢摼琛紝瀹冪敱3涓鐢熸暟鎹殑缁撶偣缁勬垚锛岃緭鍑虹粨鐐逛腑鐨勬暟鎹
1 #define NULL 0
2 #include
3 struct student
4 {
5 long num;
6 float score;
7 struct student *next;
8 };
9 void main()
10 {
11 struct student a,b,c,*head,*p;
12 a.num=200401;
13 a.score=89.5;
14 b.num=200402;
15 b.score=80;
16 c.num=200403;
17 c.score=78;
18 head=&a; /*寤虹珛閾捐〃*/
19 a.next=&b;
20 b.next=&c;
21 c.next=NULL;
22 p=head; /*鎵撳嵃閾捐〃涓殑鏁版嵁*/
23 while(p!=NULL)
24 {
25 printf("%ld\t%5.1f\n",p->num,p->score);
26 p=p->next;
27 }
28 }
涓嬮潰棣栧厛鍒嗘瀽杩欎釜閾捐〃鏄浣曞舰鎴愮殑锛岃鐪嬪浘8.17

鍥8.17
鍏朵腑锛氱18琛 head=&a;灏哸鐨勫湴鍧閫佺粰head,浣縣ead鎸囧悜a锛
绗19琛宎.next=&b;灏哹鐨勫湴鍧閫佺粰a鐨勬寚閽堝煙锛屼娇a.next鎸囧悜b锛
绗20琛宐.next=&c;灏哻鐨勫湴鍧閫佺粰b鐨勬寚閽堝煙锛屼娇b.next鎸囧悜c锛
绗21琛宑.next=NULL;鍥犱负c缁撶偣娌℃湁鍚庣户缁撶偣锛屽皢NULL閫佺粰c鐨勬寚閽堝煙锛屼娇c.next鎸囧悜NULL銆
杩欐牱灏辫繛鎴愪簡涓涓互head涓鸿〃澶达紝鏈変笁涓粨鐐圭殑閾捐〃銆
鍐嶄粙缁嶉摼琛ㄦ墦鍗版槸濡備綍杩涜鐨勶紝
鐢辩22琛 p=head; 灏唄ead閫佺粰p锛屼娇p涔熸寚鍚慳缁撶偣锛屽鍥8.18鎵绀恒

鍥8.18
鍐嶆墽琛岀23琛屽惊鐜紑濮嬶紝棣栧厛鍒ゆ柇p绛変笉绛変簬NULL锛岀粨璁烘槸涓嶇瓑浜庯紝鎵ц绗25琛岃緭鍑鸿鍙ャ傛帴鐫鎵ц绗26琛宲=p->next;璇彞锛岃娉ㄦ剰姝ゆ椂p->next鏄瓨鏀剧殑鏄粈涔堝湴鍧鍛?鏄剧劧鏄痓鐨勫湴鍧锛岀粨鏋滀娇p鎸囧悜浜哹缁撶偣 ,p鎸囬拡鍙戠敓浜嗙Щ鍔ㄣ傚鍥8.19鎵绀恒

鍥8.19
鍐嶅垽鏂璸绛変笉绛変簬NULL锛岀粨璁烘槸涓嶇瓑浜庯紝鎵ц杈撳嚭璇彞銆傛帴鐫鎵цp=p->next;璇彞锛岃娉ㄦ剰姝ゆ椂p->next鏄瓨鏀剧殑鏄粈涔堝湴鍧鍛?鏄剧劧鏄痗鐨勫湴鍧锛岀粨鏋滀娇p鎸囧悜浜哻 ,p鎸囬拡鍙堝彂鐢熶簡绉诲姩銆傚鍥8.20鎵绀恒

鍥8.20
鍐嶅垽鏂璸绛変笉绛変簬NULL锛岀粨璁烘槸涓嶇瓑浜庯紝鎵ц杈撳嚭璇彞銆傛帴鐫鎵цp=p->next;璇彞锛岃娉ㄦ剰姝ゆ椂p->next鏄瓨鏀剧殑鏄粈涔堝湴鍧鍛?鏄剧劧鏄疦ULL锛岀粨鏋滀娇p鎸囧悜浜哊ULL ,p鎸囬拡鍙堝彂鐢熶簡绉诲姩銆傚啀鍒ゆ柇p!=NULL锛岀粨璁轰负鍋囷紝閫鍑哄惊鐜傚鍥8.21鎵绀恒

鍥8.21
浠庤屽畬鎴愪簡閾捐〃鐨勯亶鍘嗭紙杈撳嚭鎵撳嵃锛夈
8.8.3 鍔ㄦ侀摼琛
渚8.6鎵鐢熸垚鐨勯摼琛ㄨ繕鏄竴绉嶉潤鎬佺殑閾捐〃锛屽墠闈㈣杩囷紝閾捐〃缁撴瀯鍙互鏄姩鎬佸湴鍒嗛厤瀛樺偍鐨勶紝鍗冲湪闇瑕佹椂鎵嶅紑杈熺粨鐐圭殑瀛樺偍绌洪棿锛屽疄鐜板姩鎬侀摼鎺ャ傛庢牱寮杈熷瓨璐┖闂村憿锛烠璇█鐨勫簱鍑芥暟鎻愪緵浜嗕互涓嬪嚑涓嚱鏁般
1.malloc 鍑芥暟
鍘熷舰涓猴細

璇ュ嚱鏁板鏋滄垚鍔熻皟鐢紝鍙互鍦ㄥ唴瀛樹腑寮杈焥ize鎸囧畾澶у皬鐨勮繛缁┖闂淬傝繑鍥炲肩被鍨嬩负void锛岃娉ㄦ剰杩欎笉鏄〃绀烘病鏈夎繑鍥炲硷紝鑰屾槸琛ㄧず杩斿洖鍊煎彲浠ユ寚鍚戜换浣曠被鍨嬨傝鍑芥暟鏄竴涓繑鍥炴寚閽堝肩殑鍑芥暟锛屽鏋滄垚鍔熻皟鐢紝杩斿洖鎵寮杈熺┖闂寸殑棣栧湴鍧锛屽鏋滃け璐ヨ繑鍥濶ULL銆傝鍑芥暟鐨勫弬鏁板彲浠ョ敤unsigned int size瀹氫箟绌洪棿澶у皬锛屼篃鍙互鐢ㄥ彉閲忕被鍨嬪悕浣滃弬鏁版潵瀹氫箟绌洪棿澶у皬銆
濡傦細malloc(sizeof(int));寮杈2涓瓧鑺傜殑瀛樺偍绌洪棿锛宮olloc(sizeof(struct student));寮杈10涓(4+4+2)瀛楄妭銆傝鍑芥暟杩斿洖鍊兼槸void绫诲瀷锛屽洜姝よ皟鐢ㄦ椂闇瑕佸己鍒惰浆鎹㈡垚闇瑕佺殑绫诲瀷銆
濡傦細锛坕nt *锛塵alloc(sizeof(int));
(struct people *)malloc(sizeof(struct student));
2. free 鍑芥暟
鍘熷瀷涓猴細

鍏朵綔鐢ㄦ槸閲婃斁鐢眕鎸囧悜鐨勫唴瀛樺尯锛屽嵆灏嗚繖閮ㄥ垎鍐呭瓨杩樼粰绯荤粺銆傛垜浠娉ㄦ剰鍔ㄦ佸紑杈熺殑鍐呭瓨鍦ㄤ笉鐢ㄤ箣鍚庡簲鍙婃椂杩樼粰绯荤粺锛屼互鍏嶉犳垚鍐呭瓨鈥滈仐婕忊濄俧ree鍑芥暟鏃犺繑鍥炲笺
杩欓噷瑕佽鏄庣殑鏄紝杩欑鑳藉姩鎬佸紑杈熷瓨璐┖闂寸殑鍖哄煙鏄唴瀛樼殑鍫嗘爤鍖恒
瀹為檯涓婂彧鏈夊缓绔嬪姩鎬侀摼琛ㄦ墠鏄湁鎰忎箟鐨勩
渚8.7 鍐欎竴涓嚱鏁板缓绔嬩竴涓湁鑻ュ共涓鐢熸暟鎹殑鍗曞悜鍔ㄦ侀摼琛紝骞剁敤num鏄惁涓0鏉ュ垽鏂緭鍏ユ槸鍚︾粨鏉熴傜畻娉曠殑N-S鍥惧涓嬶細

渚8.7N-S鍥
寤虹珛鍔ㄦ侀摼琛ㄧ殑姝ラ濡備笅锛
绗竴姝ワ細瀹氫箟涓涓ご鎸囬拡head骞舵寚鍚慛ULL锛屽鍥8.22鎵绀恒傚悓鏃跺畾涔塸1,p2涓や釜鎸囧悜缁撴瀯浣撴寚閽堝彉閲忥紝鍐嶈璁″叏灞鍙橀噺n=0銆

鍥8.22
绗簩姝ワ細寮杈熸柊缁撶偣锛屽苟浣縫1,p2鎸囧悜瀹冿紝鐒跺悗杈撳叆涓涓鐢熸暟鎹粰鏂扮粨鐐癸紝骞朵娇鎸囬拡鍩熸寚鍚慛ULL銆傚洜涓簄=1锛屾墍浠ead=p1;浣縣ead鎸囧悜绗竴涓粨鐐癸紝濡傚浘8.23鎵绀恒

鍥8.23
绗笁姝ワ細鐢变簬p1->num!=0锛屾墍浠ュ啀寮杈熶竴涓柊缁撶偣锛屽苟浣縫1鎸囧悜鏂扮粨鐐癸紝鐒跺悗杈撳叆涓涓鐢熸暟鎹粰鏂扮粨鐐癸紝骞朵娇鎸囬拡鍩熸寚鍚慛ULL銆傚洜涓簄=2锛宲2->next=p1;鐒跺悗p2=p1;銆傚鍥8.24 鎵绀恒

鍥8.24
绗洓姝ワ細鐢变簬p1->num!=0锛屾墍浠ュ啀寮杈熶竴涓柊缁撶偣锛屽苟浣縫1鎸囧悜鏂扮粨鐐癸紝鐒跺悗杈撳叆涓涓鐢熸暟鎹粰鏂扮粨鐐癸紝骞朵娇鎸囬拡鍩熸寚鍚慛ULL銆傚洜涓簄=3锛宲2->next=p1;鐒跺悗p2=p1;銆傚鍥8.25鎵绀恒

鍥8.25
绗簲姝ワ細鐢变簬p1->num!=0锛屾墍浠ュ啀寮杈熶竴涓柊缁撶偣锛屽苟浣縫1鎸囧悜鏂扮粨鐐癸紝鐒跺悗杈撳叆涓涓鐢熸暟鎹粰鏂扮粨鐐癸紝骞朵娇鎸囬拡鍩熸寚鍚慛ULL銆傚洜涓簆1->num==0,鏁呴鍑哄惊鐜傚鍥8.26鎵绀恒

鍥8.26
绋嬪簭瀹炵幇:
1 #include
2 #include
3 #define LEN sizeof(struct people)
4 struct people
5 {
6 long num;
7 float score;
8 struct people *next;
9 };
10 int n;
11 struct people *creat(void)
12 {
13 struct people *head;
14 struct people *p1,*p2;
15 n=0;
16 head=NULL;
17 p1=p2=(struct people *)malloc(LEN);
18 scanf("%ld",&p1->num);
19 scanf("%f",&p1->score);
20 p1->next=NULL;
21 while(p1->num!=0)
22 {
23 n=n+1;
24 if(n==1)
25 head=p1;
26 else
27 p2->next=p1;
28 p2=p1;
29 p1=(struct people *)malloc(LEN);
30 p1->next=NULL;
31 scanf("%ld",&p1->num);
32 if(p1->num==0)
33 continue;
34 scanf("%f",&p1->score);
35 }
36 free(p1);
37 return(head);
38 }
39 void main()
40 {
41 struct people *p;
42 int i;
43 p=creat();
44 for(i=1;i<=n;i++)
45 {
46 printf("%ld\n%f\n",p->num,p->score);
47 p=p->next;
48 }
49 }
鏈夊叧閾捐〃鐨勫叾瀹冭繍绠楋紝鎴戜滑灏嗗湪銆婃暟鎹粨鏋勩嬩竴涔︿腑浠嬬粛銆
8.9 鍏辩敤浣
闂鐨勬彁鍑猴細璁捐涓涓猵eople缁撴瀯浣擄紝鐢ㄦ潵瀛樻斁瀛︾敓鎴栨暀甯堜俊鎭細

瀛︾敓鍜屾暀甯堜俊鎭腑鍓嶄簲椤归兘鍙互鐩稿悓锛堢被鍨嬶級锛屼絾鍚庝簩椤瑰氨涓嶅悓浜嗭紝濡傛灉鏄鐢熷氨瑕佸~鍐欐暣鍨嬬殑鐝骇鍙凤紝濡傛灉鏄暀甯堝氨瑕佸~鍐欏瓧绗︿覆鍨嬬殑鑱岀О浜嗐
鎬庝箞鍏蜂綋瀹炵幇杩欎竴缁撴瀯浣撳憿锛屽鏋滄垜浠繖鏍峰畾涔夊涓嬶細
struct people
{
鈥︹
int class;
char office[10];
};
寰堟樉鐒讹紝鍦ㄦ煇绉嶅叿浣撴儏鍐典笅锛屼竴涓猵eople鍙橀噺鍙兘鏄鐢熸垨鑰呮槸鏁欏笀锛屼笉鍙兘涓ゆ牱閮芥槸锛屾墍浠ユ槸瀛︾敓缁欏嚭鐝骇鍙凤紝鏄暀甯堢粰鍑鸿亴绉帮紝涓嶄細涓ゆ牱鍚屾椂閮藉崰銆傝繖灏遍犳垚涓や釜鎴愬憳鍦ㄥ悓涓鏃跺埢鍙娇鐢ㄤ竴涓殑鎯呭喌锛屽彟涓涓┖闂蹭簡锛屽氨娴垂浜嗐傚鏋滃畾涔夌殑鍙橀噺杈冨锛岄犳垚鍐呭瓨娴垂灏辫秺澶э紝杩欎笉鏄竴涓ソ鍔炴硶銆
閫犳垚涓婅堪娴垂鐨勬牴鏈師鍥犳槸鍥犱负鏃犺鐝骇鍙疯繕鏄亴绉伴兘鏈夊悇鑷嫭绔嬬殑瀛樺偍绌洪棿銆
鎬庝箞瑙e喅涓婅堪闂锛岃兘鍚﹀仛鍒版槸瀛︾敓鍙垎閰嶇彮绾у彿绌洪棿锛屾槸鏁欏笀灏卞垎閰嶈亴绉扮┖闂达紝涓嬮潰浠嬬粛鐨勫叡鐢ㄤ綋鍙互鍩烘湰鍋氬埌杩欎竴鐐癸紝浠ヨ揪鍒拌妭鐪佸唴瀛樺拰鏇寸鍚堝疄闄呯殑鐩殑銆
8.9.1 鍏辩敤浣撶殑姒傚康
鏈夋椂闇瑕佷娇鍑犵涓嶅悓绫诲瀷鐨勫彉閲忓瓨鏀惧埌鍚屼竴娈靛唴瀛樺崟鍏冧腑銆傝繖浜涘彉閲忔庝箞鍗犵敤鍚屼竴鍗曞厓鍛紝杩欓噷鏈変互涓嬪嚑涓洜绱犺鑰冭檻锛
绗竴锛氳繖浜涗笉鍚岀殑鍙橀噺瀹冧滑璧峰鍦板潃閮界浉鍚屻
绗簩锛氭瘡娆″彧鑳藉瓨鏀惧叾涓竴涓彉閲忋備篃灏辨槸浣跨敤瑕嗙洊鎶鏈紝鍑犱釜鍙橀噺浜掔浉瑕嗙洊銆
绗笁锛氬叡鐢ㄤ綋鍙橀噺鎵鍗犲唴瀛樺ぇ灏忓彇鍑犱釜涓嶅悓绫诲瀷鍙橀噺鎵鍗犲唴瀛樹腑鏈澶х殑閭d竴涓
杩欑浣垮嚑涓笉鍚岀殑鍙橀噺鍏卞崰鍚屼竴娈靛唴瀛樼殑缁撴瀯锛岀О涓衡滃叡鐢ㄤ綋鈥濈被鍨嬨傚鍥8.27鎵绀恒

鍥8.27
鍏辩敤浣撲篃鏄睘浜庢瀯閫犵被鍨嬶紝涔熻鍏堝畾涔夌被鍨嬪啀瀹氫箟鍙橀噺銆
鍏辩敤浣撶被鍨嬬殑瀹氫箟

鍏朵腑锛寀nion涓哄畾涔夊叡鐢ㄤ綋绫诲瀷鐨勫叧閿瓧銆
渚嬶細
union data
{
int i;
chat ch;
float f;
}a,b,c;
鍚屽浠兂涓鎯砤,b,c鍏辩敤浣撳彉閲忓悇鍗犲澶х殑瀛樺偍绌洪棿锛熸槸2+1+4=7bit锛熻繕鏄彇鏈澶х殑鎴愬憳鎵鍗犵殑绌洪棿4bit?
涔熷彲浠ュ厛瀹氫箟绫诲瀷锛屽啀瀹氫箟鍙橀噺锛屾柟娉曞悓缁撴瀯浣撳彉閲忕殑瀹氫箟鐩镐技銆
8.9.2 鍏辩敤浣撳彉閲忕殑寮曠敤鏂规硶
鍏辩敤浣撳彉閲忕殑寮曠敤鏂规硶鍚岀粨鏋勪綋鍙橀噺鐨勫紩鐢ㄦ柟娉曚竴鏍凤紝鍗充笉鑳芥暣浣撳紩鐢ㄥ叡鐢ㄤ綋鍙橀噺锛屽彧鑳藉紩鐢ㄥ叡鐢ㄤ綋鎴愬憳銆
鏍煎紡锛

鎴

濡傦細printf(鈥%d鈥,a);//鏁翠綋寮曠敤浜嗗叡鐢ㄤ綋鍙橀噺锛屾槸閿欒鐨勩
鍙兘杩欐牱寮曠敤锛歛.i;鎴 b.ch;鎴 c.f;
濡傛灉p鏄寚鍚戝叡鐢ㄤ綋鐨勬寚閽堝彉閲忥紝涔熷彲浠ヨ繖鏍峰紩鐢細p->i ;鎴杙->ch;鎴杙->f; 銆
8.9.3 鍏辩敤浣撶被鍨嬬殑鐗圭偣
鍦ㄤ娇鐢ㄥ叡鐢ㄤ綋绫诲瀷鏁版嵁鏃惰娉ㄦ剰浠ヤ笅涓浜涚壒鐐癸細
锛1锛夊悓涓涓唴瀛樻鍙互鐢ㄦ潵瀛樻斁鍑犵涓嶅悓绫诲瀷鐨勬垚鍛橈紝浣嗗湪鏌愪竴鏃跺埢鍙兘瀛樻斁鍏朵腑涓绉嶏紝鑰屼笉鑳藉悓鏃跺瓨鏀惧嚑绉嶃
锛2锛夊唴瀛樹腑瀛樻斁鐨勬暟鎹槸鏈鍚庝竴娆″瓨鍏ョ殑鍐呭锛屽湪姝や箣鍓嶇殑鍐呭鍏ㄩ儴琚啿鎺夛紙瑕嗙洊锛夛紝鍥犳璧蜂綔鐢ㄧ殑鎴愬憳鏄渶鍚庝竴娆″瓨鏀剧殑鎴愬憳銆
濡傦細a.i=12;a.ch=鈥榗鈥;a.f=12.5;鍚屽浠兂涓鎯虫鏃跺唴瀛樹腑瀛樻斁鐨勬槸浠涔堬紵
锛3锛夊叡鐢ㄤ綋鍙橀噺鐨勫湴鍧鍜屽畠鐨勫悇鎴愬憳鐨勫湴鍧閮芥槸鍚屼竴鍦板潃銆備緥濡傦細&a, &a.i,&a.ch,&a.f閮芥槸鍚屼竴鍦板潃鍊笺
锛4锛変笉鑳藉鍏辩敤浣撳彉閲忓悕璧嬪硷紝涔熶笉鑳戒紒鍥惧紩鐢ㄥ彉閲忓悕鏉ュ緱鍒颁竴涓硷紝涔熶笉鑳藉垵濮嬪寲鍏辩敤浣撳彉閲忋備緥濡備互涓嬭繖浜涢兘鏄敊璇殑锛
union
{
int i;
char ch;
float f;
}a={12,鈥檆鈥,12.5}; /*涓嶈兘鍒濆鍖栧叡鐢ㄤ綋鍙橀噺*/
a=12; /*涓嶈兘瀵瑰叡鐢ㄤ綋鍙橀噺璧嬪*/
m=a; /*涓嶈兘寮曠敤鍏辩敤浣撳彉閲忓悕浠ュ緱鍒颁竴涓*/
锛5锛変笉鑳界敤鍏辩敤浣撳彉閲忎綔涓哄嚱鏁板弬鏁帮紙鍏辩敤浣撴垚鍛樺彲浠ワ級锛屼篃涓嶈兘浣垮嚱鏁板甫鍥炲叡鐢ㄤ綋鍙橀噺锛屼絾鍙互浣跨敤鎸囧悜鍏辩敤浣撳彉閲忕殑鎸囬拡锛堜笌缁撴瀯浣撳彉閲忚繖绉嶇敤娉曠浉浠匡級銆
锛6锛夊叡鐢ㄤ綋鍜岀粨鏋勪綋鍙互浜掔浉宓屽瀹氫箟銆
渚8.12锛氳鏈夎嫢骞蹭釜浜哄憳鐨勬暟鎹紝鍏朵腑鏈夊鐢熷拰鏁欏笀銆傚鐢熺殑鏁版嵁涓寘鎷細濮撳悕銆佸鍙枫佹у埆銆佽亴涓氥佺彮绾с傛暀甯堢殑鏁版嵁鍖呮嫭锛氬鍚嶃佸彿鐮併佹у埆銆佽亴涓氥佽亴鍔℃垨鑱岀О锛岀幇鍦ㄨ灏嗗畠浠斁鍦ㄥ悓涓鐨勮〃鏍间腑銆傚鏋溾渏ob鈥濋」涓衡渟鈥濆垯绗6椤朵负class锛屽鏋溾渏ob鈥濋」涓衡渢鈥濓紝鍒欑6椤逛负office銆傛樉鐒跺绗6椤硅澶勭悊鎴愬叡鐢ㄤ綋鐨勫舰寮忓皢class鍜宱ffice鏀惧湪鍚屼竴娈靛唴瀛樹腑锛屽鍥8.28鎵绀恒

鍥8.28
瑕佹眰杈撳叆浜哄憳鐨勬暟鎹紝鐒跺悗鍐嶈緭鍑恒傚厛鐪嬩笅闈㈢殑N-S鍥俱

渚8.12N_S鍥
绋嬪簭瀹炵幇锛
1 #include
2 #include
3 struct
4 {
5 int num;
6 char name[10];
7 char sex;
8 char job;
9 union
10 {
11 int classa;
12 char office[10];
13 }category;
14 }person ;
15 void main()
16 {
17 int i;
18 char numstr[20];
19 for(i=0;i<2;i++)
20 {
21 printf("璇疯緭鍏ョ紪鍙凤細");
22 gets(numstr);
23 person[i].num=atoi(numstr);
24 printf("璇疯緭鍏ュ鍚嶏細");
25 scanf("%s",person[i].name);
26 getchar(); //鐢ㄦ潵鎺ユ敹杈撳叆濮撳悕鍚庣殑鈥滃洖杞︹濈锛屼笅鍚屻
27 printf("璇疯緭鍏ユу埆(M/F)锛");
28 scanf("%c",&person[i].sex);
29 getchar();
30 printf("璇疯緭鍏ヨ亴涓(t/s)锛");
31 person[i].job=getchar();
32 if(person[i].job=='s')
33 {
34 printf("璇疯緭鍏ョ彮绾у彿锛");
35 scanf("%d",&person[i].category.classa);
36 getchar();
37 }
38 else
39 if(person[i].job=='t')
40 {
41 printf("璇疯緭鍏ヨ亴绉帮細");
42 scanf("%s",person[i].category.office);
43 getchar();
44 }
45 else
46 printf("input error!");
47 }
48 printf("\n\n");
49 printf(" No. Name Sex Job class/office\n");
50 for(i=0;i<2;i++)
51 {
52 printf("%-10d%-11s%",person[i].num,person[i].name);
53 if(person[i].sex=='M'||person[i].sex=='m')
54 printf("鐢");
55 if(person[i].sex=='F'||person[i].sex=='f')
56 printf("濂");
57 if(person[i].job=='s')
58 printf("\t\t瀛︾敓");
59 if(person[i].job=='t')
60 printf("\t\t鏁欏笀");
61 if(person[i].job=='s')
62 printf("\t\t%d\n",person[i].category.classa);
63 if(person[i].job=='t')
64 printf("\t\t%s\n",person[i].category.office);
65 }
66 }
8.10 鏋氫妇绫诲瀷
鎵璋撯滄灇涓锯濇槸鎸囧彉閲忓彲鑳界殑鍙栧肩殑涓暟杈冨皯锛屽彲浠ヤ竴涓鍒椾妇鍑烘潵锛屽彉閲忕殑鍊煎彧闄愪簬鍒椾妇鍑烘潵鐨勫肩殑鑼冨洿鍐呫傝繖绉嶆儏鍐靛緢澶氾紝濡備竴鍛ㄤ竷澶╋紝涓骞村崄浜屼釜鏈堬紝涓冪鍩烘湰棰滆壊锛岄昏緫绫诲瀷鐨勨滅湡鈥濆拰鈥滃亣鈥濄傝屾湁浜涙暟鎹槸涓嶈兘鏋氫妇鐨勫鏁村瀷锛屽疄鍨嬫暟鎹畠浠兘鏄繛缁屼笉鍙灇涓剧殑銆
8.10.1 鏋氫妇绫诲瀷鐨勫畾涔変笌鏋氫妇鍙橀噺鐨勫畾涔
鏋氫妇涔熼渶瑕佸厛瀹氫箟绫诲瀷鍐嶅畾涔夊彉閲忋傚疄闄呬笂鏋氫妇绫诲瀷骞朵笉鏄瀯閫犵被鍨嬶紝瀹冩槸涓绉嶄笌鏁村瀷鍏煎鐨勬暟鎹被鍨嬨傛垜浠妸瀹冩斁鍦ㄨ繖閲岃鎺堟槸鍩轰簬浣跨敤鏋氫妇绫诲瀷涔熻鍏堝畾涔夌被鍨嬪啀瀹氫箟鍙橀噺鐨勮冭檻銆
鏋氫妇绫诲瀷鐨勫畾涔夋牸寮忥細

鍏朵腑enum涓烘灇涓剧被鍨嬪叧閿瓧銆
渚嬪锛氬畾涔変竴鍛ㄤ竷澶╃殑鏋氫妇绫诲瀷銆
enum WEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
瀹氫箟鏋氫妇绫诲瀷鐨勫彉閲忓拰鍓嶉潰瀹氫箟缁撴瀯浣撳拰鍏辩敤浣撶殑鍙橀噺鐩镐技銆傚彲浠ラ噰鐢ㄤ笁绉嶆柟娉曘
锛1锛夊厛瀹氫箟鏋氫妇绫诲瀷鍐嶅畾涔夋灇涓惧彉閲
enum WEEKDAY today, tomorrow;
锛2锛夊畾涔夋灇涓剧被鍨嬬殑鍚屾椂瀹氫箟鏋氫妇鍙橀噺
enum WEEKDAY
{
Sun,Mon,Tue,Wed,Thu,Fri,Sat
}today,tomorrow;
锛3锛夎繕鍙互瀹氫箟鏃犲悕鏋氫妇绫诲瀷
enum
{
Sun,Mon,Tue,Wed,Thu,Fri,Sat
}today,tomorrow;
鏋氫妇绫诲瀷涓殑鍙栧煎垪琛ㄧО涓烘灇涓惧厓绱犳垨鏋氫妇甯搁噺锛屽畠浠槸鐢ㄦ埛瀹氫箟鐨勬爣璇嗙锛屼竴鑸负浜嗕笌鍙橀噺鍖哄埆鍙互鐢ㄥぇ鍐欏瓧姣嶃傚悓鏃跺畾涔夌殑鏋氫妇甯搁噺涓嶄細鑷姩鍦颁唬琛ㄤ粈涔堝惈涔夛紝渚嬪瀹氫箟Sun涓嶄細鑷姩浠h〃鈥滄槦鏈熷ぉ鈥濓紝鐢ㄤ粈涔堟爣璇嗙浠h〃浠涔堝惈涔夊畬鍏ㄧ敱绋嬪簭鍛樿嚜宸卞喅瀹氾紝骞跺湪绋嬪簭涓綔鐩稿簲鐨勫鐞嗐
8.10.2 鏋氫妇绫诲瀷涓庢暣鍨嬬殑鍏崇郴鍜岃鏄
鏋氫妇绫诲瀷涓殑鈥滃彇鍊煎垪琛ㄢ濅笌鏁存暟鏈変竴涓瀵瑰簲鍏崇郴锛屾灇涓句腑鐨勬瘡涓鍙蜂緷娆′笌0,1,2,3,鈥﹀搴旓紝濡傚墠闈㈢殑瀹氫箟涓細
Sun鈥0 Mon鈥1 Tue鈥2 Wed鈥3 Thu鈥4 Fri鈥5 Sat鈥6
涔熷氨鏄鏋氫妇绫诲瀷涓畾涔夌殑鈥滅鍙封濆疄闄呬笂涓嶆槸绗﹀彿锛屽綊鏍瑰埌搴曟槸鏁存暟銆傚綋鐒朵篃鍙互浠绘剰鏀瑰彉鍏跺搴斿叧绯伙細
渚嬪锛
enum WEEKDAY{Sun=0,Mon,Tue=5,Wed,Thu,Fri,Sat};
姝ゆ椂
Sun鈥0 Mon鈥1 Tue鈥5 Wed鈥6 Thu鈥7 Fri鈥8 Sat鈥9
鎵浠ユ灇涓惧兼槸鍙互杩涜绠楁湳杩愮畻鐨勶紝Sun+2鏄厑璁哥殑銆備絾鏄疭un=2鎿嶄綔鏄潪娉曠殑锛屽洜涓篠un鏄父閲忎笉鑳界敤璧嬪肩鏉ユ敼鍙樺叾鍊笺
璇风湅涓嬮潰鐨勪緥瀛愩
渚 8.13 鏍规嵁浠婂ぉ姹傛槑澶╂槸鏄熸湡鍑
1 #include
2 int nextDayOf(enum WEEKDAY);
3 enum WEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
4 void main()
5 {
6 enum WEEKDAY weekday;
7 int tomorrow;
8 weekday=Tue;
9 tomorrow=nextDayOf(weekday);
10 switch(tomorrow)
11 {
12 case 0:printf("Sunday\n");
13 break;
14 case 1:printf("Monday\n");
15 break;
16 case 2:printf("Tuesday\n");
17 break;
18 case 3:printf("Wednesday\n");
19 break;
20 case 4:printf("Thursday\n");
21 break;
22 case 5:printf("Friday\n");
23 break;
24 case 6:printf("Saturday\n");
25 break;
26 default:printf("Parameter error\n");
27 }
28 }
29 int nextDayOf(WEEKDAY today)
30 {
31 if(today==Sat)
32 return Sun;
33 else
34 return today+1;
35 }
nextDatOf鍑芥暟杩斿洖鍊间负鏁村瀷銆傜▼搴忚繍琛岀粨鏋滐細
Wednesday
鍑犵偣璇存槑锛
锛1锛夋灇涓惧厓绱犳槸甯搁噺涓嶆槸鍙橀噺銆
锛2锛塁璇█鍜岃緭鍑哄嚱鏁皃rintf()涓嶈瘑鍒灇涓剧鍙凤紝鍥犳涓嶈兘鐢ㄨ緭鍑哄嚱鏁板緱鍒版灇涓剧鍙凤紝濡
enum WEEKDAY today=Two;
printf("%d",today);鍙兘寰楀埌2锛岃屼笉鑳藉緱鍒癟wo銆
锛3锛夋灇涓惧煎彲浠ヨ繘琛屽垽鏂瘮杈冿紝姣旇緝鏃舵寜鏋氫妇鍊肩殑椤哄簭鍙疯繘琛屻備緥濡傦細
today=Mon;
today>Sun姣旇緝缁撴灉涓衡滅湡鈥
锛4锛変竴涓暣鏁颁笉鑳界洿鎺ヨ祴缁欎竴涓灇涓惧彉閲忋傚
today=1;鏄笉瀵圭殑锛屽洜涓哄畠浠殑绫诲瀷涓嶄竴鑷达紝濡傛灉涓瀹氳璧嬪煎彲浠ュ皢1寮哄埗杞彉涓烘灇涓剧被鍨嬪悗鍐嶈祴鍊硷紝濡倀oday=(enum WEEKDAY)1;銆
8.11 鑷畾涔夌被鍨嬫爣璇嗙
鍙互鐢╰ypedef澹版槑鐨勭被鍨嬪悕鏉ヤ唬鏇垮凡鏈夌殑绫诲瀷鍚嶏紝涔熷氨鏄敤鎴峰彲浠ョ敤涓涓嚜瀹氫箟鐨勬爣璇嗙鏉ヤ唬琛ㄤ竴涓壒瀹氱殑鏁版嵁绫诲瀷銆
鑷畾涔夌被鍨嬫爣璇嗙瀹氫箟鏍煎紡鏄細

渚嬪锛
typedef int DISTANCE;
typedef float REAL;
姝ゅ悗鎴戜滑鍙互鐢―ISTANCE鍜孯EAL鏉ュ畾涔夊彉閲忥紝骞朵笖DISTANCE浠h〃鏁村瀷锛孯EAL浠h〃鍗曠簿搴﹀瀷銆
鑷畾涔夌被鍨嬫爣璇嗙鏈変笁涓綔鐢細
锛1锛夋彁楂樼▼搴忕殑鍙鎬э細濡
DISTANCE Beijing_to_ShangHai锛孍nshi_to_WuHan;
REAL gread;
寰堟樉鐒禕eijing_to_ShangHai銆丒nShi_to_WuHan鏄敱DISTANCE瀹氫箟鐨勶紝鑻辨枃鍚箟涓衡滆窛绂烩濓紝杩欏氨鏆楃ず杩欎袱涓彉閲忔槸鐗瑰湴鐢ㄦ潵琛ㄧず璺濈鐨勬暣鍨嬪彉閲忥紱gread鐢盧EAL瀹氫箟鐨勶紝鑻辨枃鐨勫惈涔夋槸鈥滃疄鍨嬧濓紝杩欏氨鏆楃ず杩欎釜鍙橀噺鏄壒鍦扮敤鏉ヨ〃绀烘垚缁╃殑銆
锛2锛夋彁楂樼▼搴忕殑鍙淮鎶ゆс傚
鍦ㄨ皟璇曠▼搴忔椂鍙戠幇DISTANCE鎴朢EAL瀹氫箟鐨勫彉閲忎骇鐢熶簡婧㈠嚭锛岃〃鏄庣敤int鎴杅loat鐨勫煎煙鑼冨洿澶皬锛岃В鍐崇殑鍔炴硶寰堢畝鍗曪紝鍙鎶
typedef int DISTANCE; 鏀逛负 typedef long DISTANCE;
鎴栧皢 typedef float REAL;鏀逛负 typedef double REAL;鍗冲彲銆
锛3锛夐伩鍏嶇被鍨嬩娇鐢ㄤ笂鐨勪笉涓鑷存с傜壒鍒槸瀵逛簬澶嶆潅鐨勭被鍨嬶紝鐢ㄤ竴涓畝鍗曠殑鏍囪瘑绗︽潵浠h〃鍙互澶уぇ绠鍖栧璞$殑璇存槑锛岄伩鍏嶄笉蹇呰鐨勨滅瑪璇濄傚
鎴戜滑鍦ㄥ畾涔変竴涓粨鏋勪綋鏃惰鍏堝畾涔夌被鍨嬪啀瀹氫箟鍙橀噺锛屽嵆
struct student //瀹氫箟缁撴瀯浣撶被鍨
{
char No;
char Name[10];
int age;
};
struct student stu1,stu2; //瀹氫箟缁撴瀯浣撳彉閲
濡傛灉鐢ㄨ嚜瀹氫箟绫诲瀷鏍囪瘑绗︽柟寮
typedef struct //瀹氫箟缁撴瀯浣撶被鍨
{
char No;
char Name[10];
int age;
}stuType;
stuType stu1,stu2; //瀹氫箟缁撴瀯浣撳彉閲
鐢╯tuType浠f浛浜唖truct student杩欎釜缁撴瀯浣撶被鍨嬨
瀹炶鍗 鏋勯犵被鍨
1. 瀹炶棰
鏈5涓鐢燂紝鍖呮嫭瀛︾敓瀛﹀彿銆佸鍚嶅拰3闂ㄨ鎴愮哗锛岀紪绋嬭姹傚涓嬶細
鈶 鑳借緭鍑烘诲垎鏈楂樺拰鏈浣庣殑瀛︾敓鐨勫鍚嶃
鈶 鑳借绠楁瘡涓鐢熺殑鎬绘垚缁┿佸钩鍧囨垚缁╁苟杈撳嚭銆
鈶 浠ヤ笅琛ㄤ负鍘熷鏁版嵁锛岃繘琛岃皟璇曡繍琛岋紝璁板綍鍏剁粨鏋溿
num
name
score1
score1
score3
98160101
Yang HongXia
90
92
96
98160102
Jian BingHua
73
54
80
98160103
Fan ZhiWei
85
79
88
98160104
Lu ShongChi
88
85
92
98160105
Ling XiaoMiao
76
62
70
2. 瀹炶瑕佹眰
鈶 鎺屾彙缁撴瀯浣撳彉閲忕殑瀹氫箟鍜屽紩鐢ㄦ柟寮忋
鈶 鎺屾彙缁撴瀯浣撳彉閲忎笌鎸囧悜缁撴瀯浣撶殑鎸囬拡浣滀负鍑芥暟鍙傛暟瀹炵幇鍑芥暟鐨勮皟鐢ㄣ
涔犻鍏
8.1濉┖棰
锛1锛夋瀯閫犵被鍨嬭鍏堝畾涔 鍐嶅畾涔 銆
锛2锛夊畾涔夌粨鏋勪綋绫诲瀷鐨勫叧閿瓧鏄 锛屽畾涔夊叡鐢ㄤ綋绫诲瀷鐨勫叧閿瓧鏄 銆
锛3锛夌粨鏋勪綋鍙橀噺鍗犵敤鍐呭瓨绌洪棿鐨勫ぇ灏忔槸 锛屽叡鐢ㄤ綋鍙橀噺鍗犵敤鍐呭瓨绌洪棿鐨勫ぇ灏忕敱 鍐冲畾銆
锛4锛夌粨鏋勪綋瀹氫箟涓紝鍏舵垚鍛樼被鍨嬪彲浠ユ槸闄 浠讳綍宸叉湁绫诲瀷锛屼篃鍙互鏄 鐨勬寚閽堢被鍨嬶紝涔熷氨鏄缁撴瀯浣撲笉鍏佽 瀹氫箟銆
锛5锛変笅闈㈢▼搴忕殑姝g‘杈撳嚭缁撴灉涓 銆
#include
void main()
{
struct
{
int num;
float score;
}person;
int num;
float score;
num=1;
score=2;
person.num=3;
person.score=5;
printf(鈥%d,%f鈥,num,score);
}
锛6锛変笅闈㈢▼搴忕殑姝g‘杈撳嚭缁撴灉涓 銆
#include
struct person
{
int num;
float score;
};
void main()
{
struct person per,*p;
per.num=1;
per.score=2.5;
p=&per;
printf(鈥%d,%f鈥,p->num,p->score);
}
锛7锛夊姩鎬佸紑杈熷瓨鍌ㄧ┖闂寸殑鍑芥暟鍘熷舰鏄 锛屽姩鎬侀噴鏀惧瓨鍌ㄧ┖闂寸殑鍑芥暟鍘熷舰鏄 銆
8.2閫夋嫨棰
锛1锛夊綋璇存槑涓涓粨鏋勪綋鍙橀噺鏃剁郴缁熷垎閰嶇粰瀹冪殑鍐呭瓨鏄 銆
A. 鍚勬垚鍛樻墍闇鍐呭瓨閲忕殑鎬诲拰
B. 缁撴瀯涓涓涓垚鍛樻墍闇鍐呭瓨閲
C. 鎴愬憳涓崰鍐呭瓨閲忔渶澶ц呮墍闇鐨勫閲
D. 缁撴瀯涓渶鍚庝竴涓垚鍛樻墍闇鍐呭瓨閲
锛2锛夎绠楀嚭涓嬪垪姣忎釜缁撴瀯浣撶被鍨嬪畾涔夌殑鍙橀噺鎵鍗犲唴瀛樼殑澶у皬鈶 銆佲憽 銆佲憿 銆
鈶爏truct AA 鈶truct BB 鈶truct CC
{ { {
int *a; int a; char *data;
}; float b; BB s;
}; CC *link;
};
锛3锛夋湁鍏崇粨鏋勪綋鐨勬纭弿杩版槸 銆
A. 缁撴瀯浣撴垚鍛樺繀椤绘槸鍚屼竴鏁版嵁绫诲瀷
B. 缁撴瀯浣撴垚鍛樺彧鑳芥槸涓嶅悓鏁版嵁绫诲瀷
C. 鎴愬憳杩愮畻绗︹.鈥濆拰鈥->鈥濅綔鐢ㄦ槸绛変环鐨
D. 鎴愬憳灏辨槸鏁扮粍鍏冪礌
锛4锛夎鏈変互涓嬭鏄庤鍙
struct student
{
int a;
float b;
}stutype;鍒欎笅闈㈢殑鍙欒堪涓嶆纭殑鏄 銆
A锛 struct鏄粨鏋勪綋绫诲瀷鐨勫叧閿瓧
B锛 struct student鏄敤鎴峰畾涔夌殑缁撴瀯浣撶被鍨
C锛 stutype鏄敤鎴峰畾涔夌殑缁撴瀯浣撶被鍨嬪悕
D锛 a鍜宐閮芥槸缁撴瀯浣撴垚鍛樺悕
(5)浠ヤ笅绋嬪簭鐨勮繍琛岀粨鏋滄槸 銆
#include
main()
{
struct date
{
int year,month,day;
}today;
printf(鈥%d\n鈥,sizeof(struct date));
}
(6)褰撹鏄庝竴涓叡鐢ㄤ綋鏃剁郴缁熷垎閰嶇粰瀹冪殑鍐呭瓨鏄 銆
A. 鍚勬垚鍛樻墍闇鍐呭瓨閲忕殑鎬诲拰
B. 缁撴瀯涓涓涓垚鍛樻墍闇鍐呭瓨閲
C. 鎴愬憳涓崰鍐呭瓨閲忔渶澶ц呮墍闇鐨勫閲
D. 缁撴瀯涓渶鍚庝竴涓垚鍛樻墍闇鍐呭瓨閲
锛7锛変笅闈㈢▼搴忚繍琛岀殑姝g‘缁撴灉鏄 銆
#include
union opn
{
int k;
char ch ;
}x;
void main()
{
x.ch[0]=30;
x.ch =0;
printf(鈥%d\n鈥,x.k);
}
A.209 B.208 C.31 D.30
8.3鑷畾涔変竴涓粨鏋勪綋绫诲瀷鐨勫彉閲忥紝鍏舵垚鍛樺寘鎷鍙枫佸鍚嶃佸勾榫勩佹у埆锛屽苟灏嗗叾绫诲瀷澹版槑涓篠TRDENT锛岀劧鍚庣敤璇ョ被鍨嬪畾涔変竴涓鐢熺被鍨嬬殑鍙橀噺锛岃繘琛岃祴鍊兼搷浣滐紝骞惰緭鍑哄叾鍊笺
8.4灏嗕笂杩扮▼搴忔敼涓4涓鐢燂紝鐢ㄧ粨鏋勪綋鏁扮粍瀹炵幇杈撳叆杈撳嚭瀛︾敓鐨勫熀鏈俊鎭紝杈撳嚭瑕佹眰姣忚涓涓鐢熻褰曘
8.5鍒╃敤缁撴瀯浣撶被鍨嬬紪鍒朵竴绋嬪簭锛屽疄鐜拌緭鍏ヤ竴涓鐢熺殑鏁板鏈熶腑鍜屾湡鏈垚缁╋紝鐒跺悗璁$畻骞惰緭鍑哄钩鍧囨垚缁┿
8.6鐢ㄦ灇涓剧被鍨嬪疄鐜颁竴骞12涓湀鐨勮緭鍑恒
8.7璇疯鍑虹粨鏋勪綋涓庢暟缁勭殑鍖哄埆涓庤仈绯汇
8.8缂栫▼瀹炵幇鍥句功棣嗙殑鍊熻繕涔︾鐞嗭紝璁板綍淇℃伅鍖呮嫭涔﹀悕锛屽熶功浜哄悕锛屽熶功鏃ユ湡銆傝姹傦細
1锛 鑳界鐞嗗熻繕涔︾殑鐧昏宸ヤ綔锛堝彲浠ユ牴鎹熶功浜哄悕鍒ゆ柇鏄惁鍊熷嚭锛夛紱
2锛 鏄剧ず鎵鏈夊凡鍊熶功鐨勬儏鍐点




发表于 2009-1-5 19:48
| 











