ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/6/25 8:44:23ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
ºóµÄstrÈÔȻΪNULL£» ÊÔÌâ5ÖÐ
char p[] = \world\ return p;
µÄp[]Êý×éΪº¯ÊýÄڵľֲ¿×Ô¶¯±äÁ¿£¬ÔÚº¯Êý·µ»Øºó£¬ÄÚ´æÒѾ±»ÊÍ·Å¡£ÕâÊÇÐí¶à³ÌÐòÔ±³£·¸µÄ´íÎ󣬯ä¸ùÔ´ÔÚÓÚ²»Àí½â±äÁ¿µÄÉú´æÆÚ¡£
ÊÔÌâ6µÄGetMemory±ÜÃâÁËÊÔÌâ4µÄÎÊÌ⣬´«ÈëGetMemoryµÄ²ÎÊýΪ×Ö·û´®Ö¸ÕëµÄÖ¸Õ룬µ«ÊÇÔÚGetMemoryÖÐÖ´ÐÐÉêÇëÄÚ´æ¼°¸³ÖµÓï¾ä *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++ÖÐDEBUGÔËÐÐʱÌáʾ´íÎó\
Violation\¡£¸Ã³ÌÐòÓ¦¸Ã¸ÄΪ£º swap( int* p1,int* p2 ) { int p; p = *p1; *p1 = *p2; *p2 = p; }
3.ÄÚ¹¦Ìâ ÊÔÌâ1£º·Ö±ð¸ø³öBOOL£¬int£¬float£¬Ö¸Õë±äÁ¿ Óë\ÁãÖµ\±È½ÏµÄ if Óï¾ä£¨¼ÙÉè±äÁ¿ÃûΪvar£© ½â´ð£º
BOOLÐͱäÁ¿£ºif(!var) intÐͱäÁ¿£º if(var==0) floatÐͱäÁ¿£º
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON) Ö¸Õë±äÁ¿£º if(var==NULL)
ÆÊÎö£º
¿¼²é¶Ô0ÖµÅжϵÄ\ÄÚ¹¦\£¬BOOLÐͱäÁ¿µÄ0ÅжÏÍêÈ«¿ÉÒÔд³Éif(var==0)£¬¶øintÐͱäÁ¿Ò²¿ÉÒÔд³Éif(!var)£¬Ö¸Õë±äÁ¿µÄÅжÏÒ²¿ÉÒÔд³Éi-f(!var)£¬ÉÏÊöд·¨ËäÈ»³ÌÐò¶¼ÄÜÕýÈ·ÔËÐУ¬µ«ÊÇδÄÜÇåÎúµØ±í´ï³ÌÐòµÄÒâ˼¡£
Ò»°ãµÄ£¬Èç¹ûÏëÈÃifÅжÏÒ»¸ö±äÁ¿µÄ\Õæ\¡¢\¼Ù\£¬Ó¦Ö±½ÓʹÓÃif(var)¡¢if(!var)£¬±íÃ÷ÆäΪ\Âß¼\Åжϣ»Èç¹ûÓÃifÅжÏÒ»¸öÊýÖµÐͱä
Á¿(short¡¢int¡¢longµÈ)£¬Ó¦¸ÃÓÃif(var==0)£¬±íÃ÷ÊÇÓë0½øÐÐ\ÊýÖµ\ÉϵıȽϣ»¶øÅжÏÖ¸ÕëÔòÊÊÒËÓÃif(var==NULL)£¬ ÕâÊÇÒ»Öֺܺõıà³Ìϰ¹ß¡£
¸¡µãÐͱäÁ¿²¢²»¾«È·£¬ËùÒÔ²»¿É½«float±äÁ¿ÓÃ\»ò\£¡=\ÓëÊý×ֱȽϣ¬Ó¦¸ÃÉ跨ת»¯³É\»ò\ÐÎʽ¡£Èç¹ûд³Éif (x == 0.0)£¬ÔòÅÐΪ´í£¬µÃ0·Ö¡£ ÊÔÌâ2£ºÒÔÏÂΪWindows
NTϵÄ32λC++³ÌÐò£¬Çë¼ÆËãsizeofµÄÖµ void Func ( char str[100] ) {
sizeof( str ) = ? } void *p = malloc( 100 ); sizeof ( p ) = ? ½â´ð£º sizeof( str ) = 4 sizeof ( p ) = 4 ÆÊÎö£º
Func ( char str[100]
)º¯ÊýÖÐÊý×éÃû×÷Ϊº¯ÊýÐβÎʱ£¬ÔÚº¯ÊýÌåÄÚ£¬Êý×éÃûʧȥÁ˱¾ÉíµÄÄÚº£¬½ö½öÖ»ÊÇÒ»¸öÖ¸Õ룻ÔÚʧȥÆäÄÚºµÄͬʱ£¬Ëü»¹Ê§È¥ÁËÆä³£Á¿ÌØÐÔ£¬¿ÉÒÔ×÷×ÔÔö¡¢×Ô¼õµÈ²Ù×÷£¬-¿ÉÒÔ±»ÐÞ
¸Ä¡£
Êý×éÃûµÄ±¾ÖÊÈçÏ£º
£¨1£©Êý×éÃûÖ¸´úÒ»ÖÖÊý¾Ý½á¹¹£¬ÕâÖÖÊý¾Ý½á¹¹¾ÍÊÇÊý×飻 ÀýÈ磺 char str[10];
cout << sizeof(str) << endl;
Êä³ö½á¹ûΪ10£¬strÖ¸´úÊý¾Ý½á¹¹char[10]¡£
£¨2£©Êý×éÃû¿ÉÒÔת»»ÎªÖ¸ÏòÆäÖ¸´úʵÌåµÄÖ¸Õ룬¶øÇÒÊÇÒ»¸öÖ¸Õë³£Á¿£¬²»ÄÜ×÷×ÔÔö¡¢×Ô¼õµÈ²Ù×÷£¬²»Äܱ»Ð޸ģ» char str[10];
str++; //±àÒë³ö´í£¬Ìáʾstr²»ÊÇ×óÖµ
£¨3£©Êý×éÃû×÷Ϊº¯ÊýÐβÎʱ£¬ÂÙΪÆÕָͨÕë¡£ Windows NT
32λƽ̨Ï£¬Ö¸ÕëµÄ³¤¶È£¨Õ¼ÓÃÄÚ´æµÄ´óС£©Îª4×Ö½Ú£¬¹Êsizeof( str ) ¡¢sizeof ( p ) ¶¼Îª4¡£
ÊÔÌâ3£ºÐ´Ò»¸ö\±ê×¼\ºêMIN£¬Õâ¸öºêÊäÈëÁ½¸ö²ÎÊý²¢·µ»Ø½ÏСµÄÒ»¸ö¡£ÁíÍ⣬µ±ÄãдÏÂÃæµÄ´úÂëʱ»á·¢ÉúʲôÊ£¿ least = MIN(*p++, b); ½â´ð£º
#define MIN(A,B) ((A) <= (B) ? (A) : (B)) MIN(*p++, b)»á²úÉúºêµÄ¸±×÷Óà ÆÊÎö£º
Õâ¸öÃæÊÔÌâÖ÷Òª¿¼²éÃæÊÔÕ߶Ժ궨ÒåµÄʹÓ㬺궨Òå¿ÉÒÔʵÏÖÀàËÆÓÚº¯ÊýµÄ¹¦ÄÜ£¬µ«ÊÇËüÖչ鲻ÊǺ¯Êý£¬¶øºê¶¨ÒåÖÐÀ¨»¡ÖеÄ\²ÎÊý\Ò²²»ÊÇÕæµÄ²ÎÊý£¬ÔÚºêÕ¹¿ªµÄʱºò¶Ô-\²ÎÊý\½øÐеÄÊÇÒ»¶ÔÒ»µÄÌæ»»¡£
³ÌÐòÔ±¶Ôºê¶¨ÒåµÄʹÓÃÒª·Ç³£Ð¡ÐÄ£¬ÌرðҪעÒâÁ½¸öÎÊÌ⣺
£¨1£©½÷É÷µØ½«ºê¶¨ÒåÖеÄ\²ÎÊý\ºÍÕû¸öºêÓÃÓÃÀ¨»¡À¨ÆðÀ´¡£ËùÒÔ£¬ÑϸñµØ½²£¬ÏÂÊö½â´ð£º
#define MIN(A,B) (A) <= (B) ? (A) : (B) #define MIN(A,B) (A <= B ? A : B ) ¶¼Ó¦ÅÐ0·Ö£»
£¨2£©·ÀÖ¹ºêµÄ¸±×÷Óá£
ºê¶¨Òå#define MIN(A,B) ((A) <= (B) ? (A) : (B))¶ÔMIN(*p++, b)µÄ×÷Óýá¹ûÊÇ£º
((*p++) <= (b) ? (*p++) : (*p++))
Õâ¸ö±í´ïʽ»á²úÉú¸±×÷Óã¬Ö¸Õëp»á×÷Èý´Î++×ÔÔö²Ù×÷¡£ ³ý´ËÖ®Í⣬ÁíÒ»¸öÓ¦¸ÃÅÐ0·ÖµÄ½â´ðÊÇ£º #define MIN(A,B) ((A) <= (B) ? (A) : (B));
Õâ¸ö½â´ðÔں궨ÒåµÄºóÃæ¼Ó\£¬ÏÔʾ±àдÕß¶ÔºêµÄ¸ÅÄîÄ£ºý²»Ç壬ֻÄܱ»ÎÞÇ鵨ÅÐ0·Ö²¢±»ÃæÊÔ¹ÙÌÔÌ¡£
ÊÔÌâ4£ºÎªÊ²Ã´±ê׼ͷÎļþ¶¼ÓÐÀàËÆÒÔϵĽṹ£¿ #ifndef __INCvxWorksh #define __INCvxWorksh #ifdef __cplusplus extern \{ #endif /*...*/
#ifdef __cplusplus } #endif
#endif /* __INCvxWorksh */ ½â´ð£º