ǶÈëʽC/C++ÃæÊÔÌâ»ã×ܽâ´ð(II)
(±¾ÎÄÔ´×Ôhttp://www.weste.net/2006/2-20/13432127659.html )¡¡¡¡
Ðí¶àÃæÊÔÌâ¿´ËƼòµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì¶È£¬ÎÒÃÇÄÜÕæÕýдºÃÒ»¸östrcpyº¯ÊýÂð£¿ÎÒÃǶ¼¾õµÃ×Ô¼ºÄÜ£¬¿ÉÊÇÎÒÃÇд³öµÄstrcpyºÜ¿ÉÄÜÖ»ÄÜÄõ½10·ÖÖеÄ2·Ö¡£¶ÁÕß¿É´Ó±¾ÎÄ¿´µ½ strcpyº¯Êý´Ó2·Öµ½10·Ö½â´ðµÄÀý×Ó£¬¿´¿´×Ô¼ºÊôÓÚʲôÑùµÄ²ã´Î¡£´ËÍ⣬»¹ÓÐһЩÃæÊÔÌ⿼²éÃæÊÔÕßÃô½ÝµÄ˼άÄÜÁ¦¡£
¡¡¡¡·ÖÎöÕâЩÃæÊÔÌ⣬±¾Éí°üº¬ºÜÇ¿µÄȤζÐÔ£»¶ø×÷ΪһÃûÑз¢ÈËÔ±£¬Í¨¹ý¶ÔÕâЩÃæÊÔÌâµÄÉîÈëÆÊÎöÔò¿É½øÒ»²½ÔöÇ¿×ÔÉíµÄÄÚ¹¦¡£
ÕÒ´íÌâ
ÊÔÌâ1 £º
void test1()
{
¡¡char string[10];
¡¡char* str1 = "0123456789";
¡¡strcpy( string, str1 );
}
¡¡
ÊÔÌâ2 £º
void test2()
{
¡¡char string[10], str1[10];
¡¡int i;
¡¡for(i=0; i<10; i++)
¡¡{
¡¡¡¡ str1[i] = 'a';
¡¡}
¡¡strcpy( string, str1 );
}
ÊÔÌâ3 £º
void test3(char* str1)
{
¡¡char string[10];
¡¡if( strlen( str1 ) <= 10 )
¡¡{
¡¡¡¡strcpy( string, str1 );
¡¡}
}
½â´ð£º
¡¡¡¡ÊÔÌâ1×Ö·û´®str1ÐèÒª11¸ö×Ö½Ú²ÅÄÜ´æ·ÅÏ£¨°üÀ¨Ä©Î²µÄ’\0’£©£¬¶østringÖ»ÓÐ10¸ö×ֽڵĿռ䣬strcpy»áµ¼ÖÂÊý×éÔ½½ç£»
¡¡¡¡¶ÔÊÔÌâ2£¬Èç¹ûÃæÊÔÕßÖ¸³ö×Ö·ûÊý×éstr1²»ÄÜÔÚÊý×éÄÚ½áÊø¿ÉÒÔ¸ø3·Ö£»Èç¹ûÃæÊÔÕßÖ¸³östrcpy(string, str1)µ÷ÓÃʹµÃ´Óstr1ÄÚ´æÆð¸´ÖƵ½stringÄÚ´æÆðËù¸´ÖƵÄ×Ö½ÚÊý¾ßÓв»È·¶¨ÐÔ¿ÉÒÔ¸ø7·Ö£¬ÔÚ´Ë»ù´¡ÉÏÖ¸³ö¿âº¯Êýstrcpy¹¤×÷·½Ê½µÄ¸ø10 ·Ö£»
¡¡¡¡¶ÔÊÔÌâ3£¬if(strlen(str1) <= 10)Ó¦¸ÄΪif(strlen(str1) < 10)£¬ÒòΪstrlenµÄ½á¹ûδͳ¼Æ’\0’ËùÕ¼ÓõÄ1¸ö×Ö½Ú¡£
ÆÊÎö£º
¡¡¡¡¿¼²é¶Ô»ù±¾¹¦µÄÕÆÎÕ£º
¡¡¡¡(1)×Ö·û´®ÒÔ’\0’½áβ£»
¡¡¡¡(2)¶ÔÊý×éÔ½½ç°ÑÎÕµÄÃô¸Ð¶È£»
¡¡¡¡(3)¿âº¯ÊýstrcpyµÄ¹¤×÷·½Ê½£¬Èç¹û±àдһ¸ö±ê×¼strcpyº¯Êý µÄ×Ü·ÖֵΪ10£¬ÏÂÃæ¸ø³ö¼¸¸ö²»Í¬µÃ·ÖµÄ´ð°¸£º
¡¡¡¡2·Ö
void strcpy( char *strDest, char *strSrc )
{
¡¡ while( (*strDest++ = * strSrc++) != ‘\0’ );
}
4·Ö
void strcpy( char *strDest, const char *strSrc )
//½«Ô´×Ö·û´®¼Óconst£¬±íÃ÷ÆäΪÊäÈë²ÎÊý£¬¼Ó2·Ö
{
¡¡ while( (*strDest++ = * strSrc++) != ‘\0’ );
}
7·Ö
void strcpy(char *strDest, const char *strSrc)
{
¡¡
Ïà¹ØÎĵµ£º
C++/CÊÔÌâ
±¾ÊÔÌâ½öÓÃÓÚ¿¼²éC++/C³ÌÐòÔ±µÄ»ù±¾±à³Ì¼¼ÄÜ¡£ÄÚÈÝÏÞÓÚC++/C³£ÓÃÓï·¨£¬²»Éæ¼°Êý¾Ý½á¹¹¡¢Ëã·¨ÒÔ¼°Éî°ÂµÄÓï·¨¡£¿¼ÊԳɼ¨ÄÜ·´Ó³³ö¿¼ÉúµÄ±à³ÌÖÊÁ¿ÒÔ¼°¶ÔC++/CµÄÀí½â³Ì¶È£¬µ«²»ÄÜ·´Ó³¿¼ÉúµÄÖÇÁ¦ºÍÈí¼þ¿ª·¢ÄÜÁ¦¡£
±ÊÊÔʱ¼ä90·ÖÖÓ¡£Ç뿼ÉúÈÏÕæ´ðÌ⣬ÇÐÎð ......
ѧϰlinuxϵÄc/c++±à³Ì
1£¬ÏÈÓÐlinux»·¾³
´îminGWºÍcygwin¶¼ÓеãÂé·³£¬×î×î¼òµ¥µÄ°ì·¨»¹ÊÇ×°¸öÕæÕýµÄlinux£¬ÓÃÐéÄâ»úÒ²ºÃ£¬ÔÚÍøÂçÉϵÄÁíһ̨»úÆ÷Ò²ºÃ¡£ÕâÑù²»½ö¿ì£¬¶øÇÒÄãÓÐÁËÕæÕýµÄ»·¾³¡£
2.»áC/C++ÓïÑÔ£¨¹À¼ÆÄã»áµÄ£©
3.ÈëÃŽ׶ÎÊìϤgccÃüÁîÐУ¬×î»ù±¾µÄ²ÎÊý£¬È磬-g,-W,-O,-o,-c ½¨Òé¿´man gcc(ºÜ´óÕÒÏ ......
Ò»¡¢Ò»¸ö¾¹ý±àÒëµÄC/C++µÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·Ö³ÉÒÔϼ¸¸ö²¿·Ö£º
¡¡¡¡1¡¢Õ»Çø£¨stack£©£ºÓɱàÒëÆ÷×Ô¶¯·ÖÅäºÍÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ¡¢¾Ö²¿±äÁ¿µÄÖµµÈ£¬ÉõÖÁº¯ÊýµÄµ÷Óùý³Ì¶¼ÊÇÓÃÕ»À´Íê³É¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
¡¡¡¡2¡¢¶ÑÇø£¨heap£© £ºÒ»°ãÓɳÌÐòÔ±ÊÖ¶¯ÉêÇëÒÔ¼°ÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ......
ÔÚʹÓÃCÓïÑÔ±àд´óÐ͹¤³ÌʱҪÓõ½ÃæÏò¶ÔÏóÓïÑÔÖеÄһЩÌØÐÔ£¨ÄÚºËÖÐijЩ²¿·Ö¾ÍÓ¦ÓÃÁËÕâЩÌØÐÔ£©¡£CÓïÑÔÊÇ»ùÓÚÎļþµÄÀ࣬static¹Ø¼ü×ÖÉùÃ÷˽ÓÐÊý¾Ý³ÉÔ±£¬¹«ÓÐÊý¾Ý³ÉÔ±±ØÐ붨Ò嵽ͷÎļþ£¬»òÓÉÆäËüÎļþʹÓÃextern¹Ø¼ü×ÖÉùÃ÷À´Ê¹Óᣵ«ºóÕßÒýÓùØϵ²»ÇåÎú¡£Í·Îļþ¾Í³ÉÁ˹«ÓÐÊý¾Ý³ÉÔ±ÉùÃ÷µÄµØ·½¡£
Í·ÎļþÖÐÓ¦¸Ã°üº¬ÒÔϼ°·½ÃæÄÚ ......