ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

C/C++³ÌÐòԱӦƸ³£¼ûÃæÊÔÌâ
2011-12-19 10:54:37 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2447´Î
Tags£ºC/C ³ÌÐòÔ± ӦƸ ¼ûÃæ ÊÔÌâ
C/C++(www.cppentry.com) ³ÌÐòÉè¼ÆԱӦƸ³£¼ûÃæÊÔÊÔÌâÉîÈëÆÊÎö±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++(www.cppentry.com)³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº­¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û¡£

¡¡¡¡Ðí¶àÃæÊÔÌâ¿´ËƼòµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì¶È£¬ÎÒÃÇÄÜÕæÕýдºÃÒ»¸östrcpyº¯ÊýÂð ÎÒÃǶ¼¾õµÃ×Ô¼ºÄÜ£¬¿ÉÊÇÎÒÃÇд³öµÄstrcpyºÜ¿ÉÄÜÖ»ÄÜÄõ½10·ÖÖеÄ2·Ö¡£¶ÁÕß¿É´Ó±¾ÎÄ¿´µ½strcpyº¯Êý´Ó2·Öµ½10·Ö½â´ðµÄÀý×Ó£¬¿´¿´×Ô¼ºÊôÓÚʲôÑùµÄ²ã´Î¡£´ËÍ⣬»¹ÓÐһЩÃæÊÔÌ⿼²éÃæÊÔÕßÃô½ÝµÄ˼άÄÜÁ¦¡£

¡¡¡¡·ÖÎöÕâЩÃæÊÔÌ⣬±¾Éí°üº¬ºÜÇ¿µÄȤζÐÔ;¶ø×÷ΪһÃûÑз¢ÈËÔ±£¬Í¨¹ý¶ÔÕâЩÃæÊÔÌâµÄÉîÈëÆÊÎöÔò¿É½øÒ»²½ÔöÇ¿×ÔÉíµÄÄÚ¹¦¡£

¡¡¡¡2.ÕÒ´íÌâ

¡¡¡¡ÊÔÌâ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= '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) 
¡¡¡¡{ 
¡¡¡¡//¶ÔÔ´µØÖ·ºÍÄ¿µÄµØÖ·¼Ó·Ç0¶ÏÑÔ£¬¼Ó3·Ö 
¡¡¡¡assert( (strDest != NULL) &&(strSrc != NULL) ); 
¡¡¡¡while( (*strDest++ = * strSrc++) != ¡®\0¡¯ ); 
¡¡¡¡}
¡¡¡¡10·Ö

 

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
//ΪÁËʵÏÖÁ´Ê½²Ù×÷£¬½«Ä¿µÄµØÖ··µ»Ø£¬¼Ó3·Ö! 
¡¡¡¡char * strcpy( char *strDest, const char *strSrc ) 
¡¡¡¡{ 
¡¡¡¡assert( (strDest != NULL) &&(strSrc != NULL) ); 
¡¡¡¡char *address = strDest; 
¡¡¡¡while( (*strDest++ = * strSrc++) != ¡®\0¡¯ ); 
¡¡¡¡return address; 
¡¡¡¡}
¡¡¡¡´Ó2·Öµ½10·ÖµÄ¼¸¸ö´ð°¸ÎÒÃÇ¿ÉÒÔÇå³þµÄ¿´µ½£¬Ð¡Ð¡µÄstrcpy¾¹È»°µ²Ø×ÅÕâô¶àÐþ»ú£¬Õæ²»ÊǸǵÄ!ÐèÒª¶àôÔúʵµÄ»ù±¾¹¦²ÅÄÜдһ¸öÍêÃÀµÄstrcpy°¡!

 

¡¡¡¡(4)¶ÔstrlenµÄÕÆÎÕ£¬ËüûÓаüÀ¨×Ö·û´®Ä©Î²µÄ'\0'¡£

¡¡¡¡¶ÁÕß¿´Á˲»Í¬·ÖÖµµÄstrcpy°æ±¾£¬Ó¦¸ÃÒ²¿ÉÒÔд³öÒ»¸ö10·ÖµÄstrlenº¯ÊýÁË£¬ÍêÃÀµÄ°æ±¾Îª£º int strlen( const char *str ) //ÊäÈë²ÎÊýconst

¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
¡¡{ 
¡¡¡¡assert( strt != NULL ); //¶ÏÑÔ×Ö·û´®µØÖ··Ç0 
¡¡¡¡int len; 
¡¡¡¡while( (*str++) != '\0' ) 
¡¡¡¡{ 
¡¡¡¡len++; 
¡¡¡¡} 
¡¡¡¡return len; 
¡¡¡¡}
¡¡¡¡ÊÔÌâ4£º

 

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
void GetMemory( char *p ) 
¡¡¡¡{ 
¡¡¡¡p = (char *) malloc( 100 ); 
¡¡¡¡} 
¡¡¡¡void Test( void ) 
¡¡¡¡{ 
¡¡¡¡char *str = NULL; 
¡¡¡¡GetMemory( str ); 
¡¡¡¡strcpy( str, "hello world" ); 
¡¡¡¡printf( str ); 
¡¡¡¡}
¡¡¡¡ÊÔÌâ5£º

 

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
char *GetMemory( void ) 
¡¡¡¡{ 
¡¡¡¡char p[] = "hello world"; 
¡¡¡¡return p; 
¡¡¡¡} 
¡¡¡¡void Test( void ) 
¡¡¡¡{ 
¡¡¡¡char *str = NULL; 
¡¡¡¡str = GetMemory(); 
¡¡¡¡printf( str ); 
¡¡¡¡}
¡¡¡¡ÊÔÌâ6£º

 

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
void GetMemory( char **p, int num ) 
¡¡¡¡{ 
¡¡¡¡*p = (char *) malloc( num ); 
¡¡¡¡} 
¡¡¡¡void Test( void ) 
¡¡¡¡{ 
¡¡¡¡char *str = NULL; 
¡¡¡¡GetMemory( &str, 100 ); 
¡¡¡¡strcpy( str, "hello" ); 
¡¡¡¡printf( str ); 
¡¡¡¡}
¡¡¡¡ÊÔÌâ7£º

 

¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
¡¡void Test( void ) 
¡¡¡¡{ 
¡¡¡¡char *str = (char *) malloc( 100 ); 
¡¡¡¡strcpy( str, "hello" ); 
¡¡¡¡free( str ); 
¡¡¡¡... //Ê¡ÂÔµÄÆäËüÓï¾ä 
¡¡¡¡}
¡¡¡¡½â´ð£º

 

¡¡¡¡ÊÔÌâ4´«ÈëÖÐGetMemory( char *p )º¯ÊýµÄÐβÎΪ×Ö·û´®Ö¸Õ룬ÔÚº¯ÊýÄÚ²¿ÐÞ¸ÄÐββ¢²»ÄÜÕæÕýµÄ¸Ä±ä´«ÈëÐβεÄÖµ£¬Ö´ÐÐÍê

¡¡¡¡char *str = NULL;

¡¡¡¡GetMemory( str );

¡¡¡¡ºóµÄstrÈÔȻΪNULL;

¡¡¡¡ÊÔÌâ5ÖÐ

¡¡¡¡char p[] = "hello world";

¡¡¡¡return p;

¡¡¡¡µÄp[]Êý×éΪº¯ÊýÄڵľֲ¿×Ô¶¯±äÁ¿£¬ÔÚº¯Êý·µ»Øºó£¬ÄÚ´æÒѾ­±»ÊÍ·Å¡£ÕâÊÇÐí¶à³ÌÐòÔ±³£·¸µÄ´íÎó£¬Æä¸ùÔ´ÔÚÓÚ²»Àí½â±äÁ¿µÄÉú´æÆÚ¡£

¡¡¡¡ÊÔÌâ6µÄGetMemory±ÜÃâÁËÊÔÌâ4µÄÎÊÌ⣬´«ÈëGetMemoryµÄ²ÎÊýΪ×Ö·û´®Ö¸ÕëµÄÖ¸Õ룬µ«ÊÇÔÚGetMemoryÖÐÖ´ÐÐÉêÇëÄÚ´æ¼°¸³ÖµÓï¾ä tiffanybracelets

¡¡¡¡*p = (char *) malloc( num );

¡¡¡¡ºóδÅжÏÄÚ´æÊÇ·ñÉêÇë³É¹¦£¬Ó¦¼ÓÉÏ£º

¡¡¡¡if ( *p == NULL )

¡¡¡¡{

¡¡¡¡...//½øÐÐÉêÇëÄÚ´æʧ°Ü´¦Àí

¡¡¡¡}

¡¡¡¡ÊÔÌâ7´æÔÚÓëÊÔÌâ6ͬÑùµÄÎÊÌ⣬ÔÚÖ´ÐÐ

¡¡¡¡char *str = (char *) malloc(100);

¡¡¡¡ºóδ½øÐÐÄÚ´æÊÇ·ñÉêÇë³É¹¦µÄÅжÏ;ÁíÍ⣬ÔÚfree(str)ºóδÖÃstrΪ¿Õ£¬µ¼Ö¿ÉÄܱä³ÉÒ»¸ö¡°Ò°¡±Ö¸Õ룬Ӧ¼ÓÉÏ£º

¡¡¡¡str = NULL;

¡¡¡¡ÊÔÌâ6µÄTestº¯ÊýÖÐҲδ¶ÔmallocµÄÄÚ´æ½øÐÐÊÍ·Å¡£

¡¡¡¡ÆÊÎö£º

¡¡¡¡ÊÔÌâ4¡«7¿¼²éÃæÊÔÕ߶ÔÄÚ´æ²Ù×÷µÄÀí½â³Ì¶È£¬»ù±¾¹¦ÔúʵµÄÃæÊÔÕßÒ»°ã¶¼ÄÜÕýÈ·µÄ»Ø´ðÆäÖÐ50~60µÄ´íÎó¡£µ«ÊÇÒªÍêÈ«½â´ðÕýÈ·£¬È´Ò²¾ø·ÇÒ×Ê¡£

¡¡¡¡¶ÔÄÚ´æ²Ù×÷µÄ¿¼²éÖ÷Òª¼¯ÖÐÔÚ£º

¡¡¡¡(1)Ö¸ÕëµÄÀí½â;

¡¡¡¡(2)±äÁ¿µÄÉú´æÆÚ¼°×÷Ó÷¶Î§;

¡¡¡¡(3)Á¼ºÃµÄ¶¯Ì¬ÄÚ´æÉêÇëºÍÊÍ·ÅÏ°¹ß¡£

¡¡¡¡ÔÙ¿´¿´ÏÂÃæµÄÒ»¶Î³ÌÐòÓÐʲô´íÎó£º

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
swap( int* p1,int* p2 ) 
¡¡¡¡{ 
¡¡¡¡int *p; 
¡¡¡¡*p = *p1; 
¡¡¡¡*p1 = *p2; 
¡¡¡¡*p2 = *p; 
¡¡¡¡}
¡¡¡¡ÔÚswapº¯ÊýÖУ¬pÊÇÒ»¸ö¡°Ò°¡±Ö¸Õ룬ÓпÉÄÜÖ¸ÏòϵͳÇø£¬µ¼Ö³ÌÐòÔËÐеıÀÀ£¡£ÔÚVC++(www.cppentry.com)ÖÐDEBUGÔËÐÐʱÌáʾ´íÎó¡°Access Violation¡±¡£¸Ã³ÌÐòÓ¦¸Ã¸ÄΪ£º

 

¡¡¡¡

ÒÔÏÂÊÇÒýÓÃƬ¶Î£º
swap( int* p1,int* p2 ) 
¡¡¡¡{ 
¡¡¡¡int p; 
¡¡¡¡p = *p1; 
¡¡¡¡*p1 = *p2; 
¡¡¡¡*p2 = p; 
¡¡¡¡}
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºC++¶ÔÏóÒýÓÃ×÷Ϊº¯Êý²ÎÊýµÄ×÷Óà ÏÂһƪ£ºLinuxÃæÊÔÌâ´óÈ«

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿