C Traps and Pitfalls Ëæ±Ê
CÏÝÚåÓÚȱÏÝÕâ±¾Ê鵽ͼÊé¹Ý½èÁ˺ܾã¬Ò»Ö±¶¼Ã»ÓÐϸϸµÄ¿´£¬ÏÖÍêÕûµÄ¿´ÁËÖ®ºó°ÑÈÏÎªÖØÒªµÄ£¬Ò»°ãÈË¿ÉÄܺöÊÓµÄÎÊÌâ¸ø×öÁ˱ʼǣ¬Ï£ÍûÓÐËù°ïÖú
2010.02.25
¶þάÊý×é:
int calendar[12][31];
int * p;
int i;
calendar[4]µÄº¬Ò壺
calendar[4]ÊÇcalendarÊý×éµÄµÚ5¸öÔªËØ£¬ÊÇcalendarÊý×éÖÐ12¸öÓÐ×Å31¸öÕûÐÍÔªËØµÄÊý×éÖ®Ò»¡£
szieof(calendar[4])µÄ½á¹ûÊÇ31Óësizeof(int)µÄ³Ë»ý¡£
p=calendar[4];±íʾָÕëpÖ¸Ïòcalendar[4]ÖÐϱêΪ0µÄÔªËØ¡£
i=calendar[4][7];i=*(calendar[4]+7);i=*(*(calendar+4)+7);ΪͬÑùµÄ¹¦ÄÜ¡£
p=calendar;·Ç·¨£¬calendarÊÇÒ»¸ö¶þάÊý×飬¼´"Êý×éµÄÊý×é",±»×ª»»ÎªÒ»¸öÖ¸ÏòÊý×éµÄÖ¸Õ룻pΪָÏòÕûÐͱäÁ¿µÄÖ¸Õë¡£
int (*monthp)[31];monthp=calendar:ΪºÏ·¨µÄ¡£monthpÖ¸ÏòcalendarµÄµÚÒ»¸öÔªËØ
calendar[i][j]=0;Óë*(*(calendar+i)+j)=0;µÈ¼Û¡£
for(monthp=calendar;monthp< &calendar[12];monthp++)//¿ÉÒÔÓÃmonthp²½½øµÄ·½Ê½±ãÀûÊý×écalendar;
for(monthp=calendar;monthp< &calendar[12];monthp++)
int * dayp;
for(dayp=* monthp;dayp<&(*monthp)[31];dayp++)
*dayp=0;
×ܽ᣺
¿ÉÄÜÔÚCÓïÑÔÖжþάÊý×é²»ÊÇÁ¬Ðø·ÖÅäµÄ£¬µÚһάÖеÄÿһ¸öÔªËØÎªµÚ¶þάÊý×éµÄÊ×µØÖ·¡£
·ÇÊý×éÖ¸ÕëʹÓãº
char * r;
r=malloc(strlen(s)+strlen(t)+1);
if(!r) //error control;
strcpy(r,s);
strcat(r,t);
//control;
fress(r);
mallocº¯Êý¿ÉÄÜÎÞ·¨ÌṩÇëÇóµÄÄڴ棬½«·µ»Ø¿ÕÖ¸Õë¡£
strlen·µ»Ø×Ö·û´®ÖÐËù°üº¬µÄ×Ö·ûÊýÄ¿£¬×÷Ϊ½áÊø±êÖ¾µÄ¿Õ×Ö·û묒ËãÔÚÄÚ¡£strlen(s)µÄֵΪn£¬Ôò×Ö·û´®Êµ¼ÊÐèÒª£î+£±¸ö×Ö·ûµÄ¿Õ¼ä¡£
char hello[]="hello";
printf("%s\n",hello);Óëprintf("%s\n",&hello[0])µÈЧ¡£
char *p,*q;
p="xyz";//pµÄÖµ²»ÊÇ"xyz"£¬p¶øÊÇÖ¸Ïò×Ö·ûÊý×éµÄÆøÖÊÔªËØµÄÖ¸Õ룻
q=p;//pºÍqÖ¸ÏòÄÚ´æÖÐͬһµØÖ·µÄÖ¸Õë¡£¸Ã¸³ÖµÓï¾ä²¢Ã»ÓÐͬʱ¸´ÖÆÄÚ´æÖеÄ×Ö·û
q[1]='Y';//q£¬pÖ¸ÏòµÄ×Ö·û´®¶¼¸Ä±ä¡£
Êý×éÖÐʵ¼Ê²»´æÔڵēÒç½ç”ÔªËØµÄµØÖ·Î»ÓÚÊý×éËùÕ¼ÄÚ´æÖ®ºó£¬Õâ¸öµØÖ·¿ÉÒÔÓÃÓÚ¸´ÖƺͱȽϣ¬ÒýÓøÃÔªËØÔò·Ç·¨¡£
static:
static int a£»±íʾaµÄ×÷ÓÃÓòÏÞÖÆÔÚÒ»¸öÔ´ÎļþÖУ¬¶ÔÓÚÆäËûÔ´Îļþ£¬aÊDz»¿É¼ûµÄ¡£staticÒ²ÊÊÓÃÓÚº¯Ê
Ïà¹ØÎĵµ£º
ÕâÒ»ÕÂÎÒÃÇѧϰLinuxµÄʱ¼ä±íʾºÍ¼ÆË㺯Êý
1.ʱ¼äµÄ±íʾ
2.ʱ¼äµÄ²âÁ¿
3.¼ÆÊ±Æ÷µÄʹÓÃ
--------------------------------------------------------------------------------
1¡£Ê±¼ä±íʾ ÔÚ³ÌÐòµ±ÖÐ,ÎÒÃǾ³£ÒªÊä³öϵͳµ±Ç°µÄʱ¼ä,±ÈÈçÎÒÃÇʹÓÃdateÃüÁîµÄÊ ......
C Runtime Library
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬ Dennis Ritchie ºÍ Brian ......
CÖÐÔ¤±àÒëºê¶¨Òå
2010-01-07 11:49
ÔÚ½«Ò»¸öCÔ´³ÌÐòת»»Îª¿ÉÖ´ÐгÌÐòµÄ¹ý³ÌÖÐ, ±àÒëÔ¤´¦ÀíÊÇ×î³õµÄ²½Öè. ÕâÒ»²½ÖèÊÇÓÉÔ¤´¦ÀíÆ÷(preprocessor)À´Íê³ÉµÄ. ÔÚÔ´Á÷³ÌÐò±»±àÒëÆ÷´¦Àí֮ǰ, Ô¤´¦ÀíÆ÷Ê×ÏȶÔÔ´³ÌÐòÖеÄ"ºê(macro)"½øÐд¦Àí.
C ³õѧÕß¿ÉÄܶÔÔ¤´¦ÀíÆ÷ûʲô¸ÅÄî, ÕâÊÇÇéÓпÉÔµÄ: Ò»°ãµÄC±àÒëÆ÷¶¼½«Ô¤´¦Àí, »ã±à, ± ......
±¾ÎÄ´Ó½éÉÜ»ù´¡¸ÅÄîÈëÊÖ£¬Ì½ÌÖÁËÔÚC/C++ÖжÔÈÕÆÚºÍʱ¼ä²Ù×÷ËùÓõ½µÄÊý¾Ý½á¹¹ºÍº¯Êý£¬²¢¶Ô¼ÆÊ±¡¢Ê±¼äµÄ»ñÈ¡¡¢Ê±¼äµÄ¼ÆËãºÍÏÔʾ¸ñʽµÈ·½Ãæ½øÐÐÁ˲ûÊö¡£±¾ÎÄ»¹Í¨¹ý´óÁ¿µÄʵÀýÏòÄãչʾÁËtime.hÍ·ÎļþÖÐÉùÃ÷µÄ¸÷ÖÖº¯ÊýºÍÊý¾Ý½á¹¹µÄÏêϸʹÓ÷½·¨¡£
¹Ø¼ü×Ö£ºUTC£¨ÊÀ½ç±ê׼ʱ¼ä£©£¬Calendar Time£¨ ......
typedefΪCÓïÑԵĹؼü×Ö£¬×÷ÓÃÊÇΪһÖÖÊý¾ÝÀàÐͶ¨ÒåÒ»¸öÐÂÃû×Ö¡£µ±typedefÓë½á¹¹½áºÏʹÓÃʱ£¬»áÓÐһЩ±È½Ï¸´ÔÓµÄÇé¿ö£¬¶øÇÒÔÚCÓïÑÔºÍC++ÀïÃæÂÔÓвî±ð£¬±¾ÎĽ«Ïêϸ½²½âtypedef structµÄÓ÷¨¡£
µÚÒ»Õ typedef struct Óë structµÄÇø±ð
1. »ù±¾½âÊÍ
ty ......