C/C++
9.2 ¹²ÓÃÌå
CÓïÑÔ³ýÁËÌṩ½á¹¹ÌåÕâÖֿɰüº¬¶àÖÖÀàÐÍÊý¾ÝµÄ¹¹ÔìÀàÐÍÍ⣬»¹ÌṩÁËÒ»ÖÖ´ÓÐÎʽÉÏ¿´ºÍ½á¹¹Ìå¿°³Æ“ÂÏÉúÐֵܔµÄ¹¹ÔìÀàÐÍ——¹²ÓÃÌ壨union£©¡£
±¾½Ú´Ó¹²ÓÃÌåµÄ¸ÅÄîÈëÊÖ£¬´Ó¹²ÓÃÌåµÄ¸ÅÄî¡¢Óë½á¹¹ÌåµÄÒìͬ¡¢Ê¹Óõȷ½Ãæ½øÐÐÏêϸµÄ½éÉÜ¡£
9.2.1 ʲôÊǹ²ÓÃÌå
ÏÖʵÉú»îÖУ¬Ä³Ð©ÊÂÎïÍùÍù¿ÉÒÔÓöàÖÖ·½Ê½È¥±íÊö£¬¸÷ÖÖ·½Ê½µÄµØÎ»ÊÇÆ½µÈµÄ£¬¶¼ÊÇ´Ó²»Í¬µÄ²àÃæÈ¥·´Ó¦Õâ¸öÊÂÎï¡£ÀýÈ磬¹ÅÈËÓõÄ×Ö¡¢Ãû¡¢ºÅ£¬¶¼ÊǶÔÒ»¸öÈ˵ijÆÎ½£¬µ«ÊÇ»á¸ù¾Ý²»Í¬µÄ³¡ºÏºÍÇé¿öʹÓÃÆäÖеÄÒ»ÖÖ¡£ÓÖÀýÈ磬ÓÃÊý×ÖºÍÓÃÓÅ¡¢Á¼¡¢ÖС¢²î¶¼¿ÉÒÔ±íʾ³É¼¨£¬¾ßÌåʹÓÃÉÏ¿ÉÄܸù¾Ý³É¼¨µÄÖÖÀ಻ͬ¶øÑ¡ÓÃÆäÖеÄÒ»ÖÖ·½Ê½¡£
Èç¹ûÕâЩ·½Ê½¿ÉÒÔÓÃͬһÖÖÀàÐÍÀ´±íʾ£¬ÄÇôÊý×é“ÃãÇ¿”Äܹ»ÓÃÀ´¶ÔÆä½øÐд洢£¬µ«ÀË·Ñ´æ´¢¿Õ¼ä¡£¶øÈç¹ûÆäÊý¾ÝÀàÐͲ»Í¬£¬Êý×é¾Í“ÎÞÄÜΪÁ¦”ÁË¡£½á¹¹ÌåËÆºõÒ²ÄÜ¶ÔÆä½øÐбíÊö£¬µ«²¢²»ÊÇ×î¼ÑµÄ·½Ê½¡£Õë¶ÔÕâÖÖÇé¿öÏ£¬CÓïÑÔÌṩµÄ¹²ÓÃÌåÊý¾ÝÀàÐÍ¡£
¹²ÓÃÌ壬Òà³ÆÁªºÏ£¬ÊÇÓбðÓÚǰÊöÈκÎÒ»ÖÖÊý¾ÝÀàÐ͵ÄÌØÊâÊý¾ÝÀàÐÍ£¬ÆäÓÃÀ´ÃèÊöÀàÐͲ»ÏàͬµÄÊý¾Ý¡£Óë½á¹¹Ì岻ͬµÄÊÇ£º¹²ÓÃÌå¶Ô³ÉÔ±´æ´¢Ê±²ÉÓø²¸Ç¼¼Êõ£¬¹²Ïí(²¿·Ö)´æ´¢¿Õ¼ä£¬³ÉÔ±±»·ÖÅäÔÚͬһ¶ÎÄÚ´æ¿Õ¼äÖС£³ÉÔ±¼È¿ÉÒÔ¾ßÓÐÏàͬµÄÊý¾ÝÀàÐÍ£¬Ò²¿ÉÒÔ¾ßÓв»Í¬µÄÊý¾ÝÀàÐÍ¡£
¹²ÓÃÌ嶨ÒåÓë½á¹¹ÌåÏàËÆ£¬ÆäÒ»°ãÐÎʽΪ£º
union ¹²ÓÃÌåÃû
{
Êý¾ÝÀàÐÍ ³ÉÔ±Ãû1£»
Êý¾ÝÀàÐÍ ³ÉÔ±Ãû2£»
……
Êý¾ÝÀàÐÍ ³ÉÔ±Ãûn£»
};
ÀýÈ磬ÏÂÃæ¶¨ÒåÒ»¸ö±íʾ³É¼¨µÄ¹²ÓÃÌ壺
union mark
{
int score; //±íʾ·ÖÊý
char degree[4]; //±íʾµÈ¼¶
};
ÆäÈçͼ9.15Ëùʾ£º
ͼ9.15 ¹²ÓÃÌåmark
9.2.2 ¹²ÓÃÌåÓë½á¹¹Ìå
¹²ÓÃÌåºÍ½á¹¹Ì壬×÷ΪÁ½ÖÖ¹¹ÔìÀàÐÍ£¬´ÓÐÎʽÉÏ¿´¼«ÆäÏàËÆ£¬µ«È·ÊµÊÇÁ½ÖÖ²»Í¬µÄÊý¾ÝÀàÐÍ£¬¿ÉÒÔ˵ÊÇ“Ã²ËÆÉñÀ딡£ÏÂÃæ´ÓÍⲿÐÎʽ£¨Íⲿ£©ºÍÄÚ´æÊ¹Óã¨ÄÚ²¿£©Á½·½Ãæ¶ÔÆä½øÐбȽϡ£
1. ÍⲿµÄ“ÇéͶÒâºÏ”
¹²ÓÃÌåµÄ¶¨Òå¡¢¹²ÓÃÌå±äÁ¿µÄ¶¨Òå¡¢¹²ÓÃÌå±äÁ¿µÄÒýÓõȷ½ÃæºÍ½á¹¹ÌåÐÎʽÏàͬ£¬¿ÉÒÔ¼òµ¥µÄ¿´×÷ÓÃunion¹Ø¼ü×ÖÌæ´ústruct¹Ø¼ü×Ö¡£¾ßÌå˵Ã÷ÈçÏ£º
l ÀàËÆÓë½á¹¹Ìå±äÁ¿µÄÈýÖÖ¶¨Ò巽ʽ£¬¹²ÓÃÌå±äÁ¿Ò²ÓÐÈýÖÖÐÎʽµÄ¶¨Ò巽ʽ¡£¼´Ïȶ¨Òå¹²ÓÃÌåÀàÐÍ£¬ÔÚ¶¨Òå¹²ÓÃÌå±äÁ¿£»¶¨Òå¹²ÓÃÌåÀàÐ͵Äͬʱ¶¨Òå¹²ÓÃÌå±äÁ¿£»²»º¬¹²ÓÃÌåÀàÐÍÃû¶¨Òå¹²ÓÃÌå±äÁ¿¡£
ÀýÈ磬
Ïà¹ØÎĵµ£º
¡¡¡¡Ëùν“Îļþ”ÊÇÖ¸Ò»×éÏà¹ØÊý¾ÝµÄÓÐÐò¼¯ºÏ¡£ Õâ¸öÊý¾Ý¼¯ÓÐÒ»¸öÃû³Æ£¬½Ð×öÎļþÃû¡£ ʵ¼ÊÉÏÔÚÇ°ÃæµÄ¸÷ÕÂÖÐÎÒÃÇÒѾ¶à´ÎʹÓÃÁËÎļþ£¬ÀýÈçÔ´³ÌÐòÎļþ¡¢Ä¿±êÎļþ¡¢¿ÉÖ´ÐÐÎļþ¡¢¿âÎļþ (Í·Îļþ)µÈ¡£Îļþͨ³£ÊÇפÁôÔÚÍⲿ½éÖÊ(Èç´ÅÅ̵È)Éϵģ¬ ÔÚʹÓÃʱ²Åµ÷ÈëÄÚ´æÖÐÀ´¡£´Ó²»Í¬µÄ½Ç¶È¿É¶ÔÎļþ×÷²»Í¬µÄ·ÖÀà¡£´ÓÓû ......
exercise2.4
void squeeze(char s[],char t[])
{
int i,j,k;
int lens,lent;
lens=strlen(s);
lent=strlen(t);
for(i=0,k=0;i<lens;i++)
{
for(j=0;j<lent;j++)
if(s[i]==t[j])
break;
if(j==lent)
s[k++]=s[i];
}
s[k]='\0';
}
exercise2.5
int any(char s[],char t[ ......
Ò»¸öÓÉC/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å
£¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å
£¬
Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅä·½ ......
ÎÒÓõÄÊÇubuntu²Ù×÷ϵͳ¡£´ò¿ªÖÕ¶Ë
1.sudo apt-get install vim(vim-full Õâ¸öÈí¼þ×Ô9.10°æ±¾±»·ÏÆúÁË£¬²»ÂÛÔõôÌí¼ÓÈí¼þÔ´¶¼ÕÒ²»µ½µÄ£¬ËùÒÔÖ±½Ó°²×°vim¾Í¿ÉÒÔÁË£¬£¬Ò²¿ÉÒÔ°²×°gvim£¬£¬ÔÚÐÂÁ¢µÃÈí¼þÀïÃæËÑË÷vim¾Í¿ÉÒÔÕÒµ½ÁË)
2.
sudo apt-get install build-essential // build-essentialÊÇcÓïÑԵĿª·¢°ü£¬°üº¬ÁËgcc ma ......