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

TOP

C/C++»ù´¡ÖªÊ¶ÎÊÌâ(ËÄ)
2014-11-24 01:20:07 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:424´Î
Tags£ºC/C »ù´¡ÖªÊ¶ ÎÊÌâ
ess Violation,Õâ¸ö´íÎó³£³£ÔÚ¼ÆËã»úÓû§ÔËÐеijÌÐòÊÔͼ´æȡδ±»Ö¸¶¨Ê¹ÓõĴ洢ÇøʱÓöµ½ÖУ¬¿É¼ûmymyl()Õâ¸öº¯Êý²¢Ã»Óеõ½ÕýÈ·µÄÖ´ÐС£¡£¡£Í¬Ñù£¬ÓÃgccÀ´Ö±½Ó±àÒëÉÏÊö³ÌÐò£¬ËäȻûÓб¨´í£¬µ«½á¹ûÈÔȻΪ6.00000,¿ÉÄÜgccÒ²ÊÇÔÚÖ´ÐÐmymul()ʱûÓÐÕýÈ·Ö´ÐÐ(²»¹ýÎÒûÄÃgdbÀ´¸ú×Ù¿´)
ÒÔÏÂÄÚÈÝÊDz¹³ä£¬Ö÷ÒªÊÇһЩ»ù´¡µÄ֪ʶ
3.¶þάÊý×é¿Õ¼äµÄ¶¯Ì¬ÉêÇë
a.¼òµ¥µÄ£¬ÒѾ­ÓÐһά£¬Èç
char (*c)[5];
c=new char[n][5];//nΪÒѶ¨ÒåµÄÐÐÊý
b.¶þάµÄ
int **p;
p=new int*[m_row];//´´½¨ÐÐÖ¸Õë
for(int i=0;i p[i]=new int[m_cols];
дµ½Ä³Ò»¸öº¯ÊýÖУº
void getmemory(int ** &p,int m_row,int m_cols)
{
p=new int*[m_row];//´´½¨ÐÐÖ¸Õë
for(int i=0;i p[i]=new int[m_cols];
}
ÊÍ·Å¿Õ¼ä:
void deletememory(int **&p,int m_row)
{
//ÊÍ·ÅÿһÐÐËù·ÖÅäµÄ¿Õ¼ä
for(int i=0;i delete [] x[i];
//ÊÍ·ÅÐÐÖ¸Õë
delete [] x;
x=0;
}


ǶÈëʽ¿ª·¢¡ªCÓïÑÔÃæÊÔÌâÊÕ²Ø
Ô¤´¦ÀíÆ÷£¨Preprocessor£©


1. ÓÃÔ¤´¦ÀíÖ¸Áî#define ÉùÃ÷Ò»¸ö³£Êý£¬ÓÃÒÔ±íÃ÷1ÄêÖÐÓжàÉÙÃ루ºöÂÔÈòÄêÎÊÌ⣩
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
ÎÒÔÚÕâÏë¿´µ½¼¸¼þÊÂÇ飺
1). #define Óï·¨µÄ»ù±¾ÖªÊ¶£¨ÀýÈ磺²»ÄÜÒԷֺŽáÊø£¬À¨ºÅµÄʹÓ㬵ȵȣ©
2). ¶®µÃÔ¤´¦ÀíÆ÷½«ÎªÄã¼ÆËã³£Êý±í´ïʽµÄÖµ£¬Òò´Ë£¬Ö±½Óд³öÄãÊÇÈçºÎ¼ÆËãÒ»ÄêÖÐÓжàÉÙÃë¶ø²»ÊǼÆËã³öʵ¼ÊµÄÖµ£¬ÊǸüÇåÎú¶øûÓдú¼ÛµÄ¡£
3). Òâʶµ½Õâ¸ö±í´ïʽ½«Ê¹Ò»¸ö16λ»úµÄÕûÐÍÊýÒç³ö-Òò´ËÒªÓõ½³¤ÕûÐÍ·ûºÅL,¸æËß±àÒëÆ÷Õâ¸ö³£ÊýÊǵij¤ÕûÐÍÊý¡£
4). Èç¹ûÄãÔÚÄãµÄ±í´ïʽÖÐÓõ½UL£¨±íʾÎÞ·ûºÅ³¤ÕûÐÍ£©£¬ÄÇôÄãÓÐÁËÒ»¸öºÃµÄÆðµã¡£¼Çס£¬µÚÒ»Ó¡ÏóºÜÖØÒª¡£


2. дһ¸ö¡°±ê×¼¡±ºêMIN£¬Õâ¸öºêÊäÈëÁ½¸ö²ÎÊý²¢·µ»Ø½ÏСµÄÒ»¸ö¡£
#define MIN(A,B) ((A) <= (B) (A) : ))


Õâ¸ö²âÊÔÊÇΪÏÂÃæµÄÄ¿µÄ¶øÉèµÄ£º


1). ±êʶ#defineÔÚºêÖÐÓ¦ÓõĻù±¾ÖªÊ¶¡£ÕâÊǺÜÖØÒªµÄ£¬ÒòΪֱµ½Ç¶Èë(inline)²Ù×÷·û±äΪ±ê×¼CµÄÒ»²¿·Ö£¬ºêÊÇ·½±ã²úÉúǶÈë´úÂëµÄΨһ·½·¨£¬¶ÔÓÚǶÈëʽϵͳÀ´Ëµ£¬ÎªÁËÄÜ´ïµ½ÒªÇóµÄÐÔÄÜ£¬Ç¶Èë´úÂë¾­³£ÊDZØÐëµÄ·½·¨¡£
2). ÈýÖØÌõ¼þ²Ù×÷·ûµÄ֪ʶ¡£Õâ¸ö²Ù×÷·û´æÔÚCÓïÑÔÖеÄÔ­ÒòÊÇËüʹµÃ±àÒëÆ÷ÄܲúÉú±Èif-then-else¸üÓÅ»¯µÄ´úÂ룬Á˽âÕâ¸öÓ÷¨ÊǺÜÖØÒªµÄ¡£
3). ¶®µÃÔÚºêÖÐСÐĵذѲÎÊýÓÃÀ¨ºÅÀ¨ÆðÀ´
4). ÎÒÒ²ÓÃÕâ¸öÎÊÌ⿪ʼÌÖÂÛºêµÄ¸±×÷Óã¬ÀýÈ磺µ±ÄãдÏÂÃæµÄ´úÂëʱ»á·¢ÉúʲôÊ£¿
least = MIN(*p++, b);


3. Ô¤´¦ÀíÆ÷±êʶ#errorµÄÄ¿µÄÊÇʲô£¿


Èç¹ûÄã²»ÖªµÀ´ð°¸£¬Çë¿´²Î¿¼ÎÄÏ×1¡£ÕâÎÊÌâ¶ÔÇø·ÖÒ»¸öÕý³£µÄ»ï¼ÆºÍÒ»¸öÊé´ô×ÓÊǺÜÓÐÓõġ£Ö»ÓÐÊé´ô×ӲŻá¶ÁCÓïÑԿα¾µÄ¸½Â¼È¥ÕÒ³öÏóÕâÖÖ
ÎÊÌâµÄ´ð°¸¡£µ±È»Èç¹ûÄã²»ÊÇÔÚÕÒÒ»¸öÊé´ô×Ó£¬ÄÇôӦÊÔÕß×îºÃÏ£Íû×Ô¼º²»ÒªÖªµÀ´ð°¸¡£


ËÀÑ­»·£¨Infinite loops£©


4. ǶÈëʽϵͳÖо­³£ÒªÓõ½ÎÞÏÞÑ­»·£¬ÄãÔõôÑùÓÃC±àдËÀÑ­»·ÄØ£¿


Õâ¸öÎÊÌâÓü¸¸ö½â¾ö·½°¸¡£ÎÒÊ×Ñ¡µÄ·½°¸ÊÇ£º
while(1) { }
һЩ³ÌÐòÔ±¸üϲ»¶ÈçÏ·½°¸£º
for(;;) { }
Õâ¸öʵÏÖ·½Ê½ÈÃÎÒΪÄÑ£¬ÒòΪÕâ¸öÓ﷨ûÓÐÈ·Çбí´ïµ½µ×Ôõô»ØÊ¡£Èç¹ûÒ»¸öÓ¦ÊÔÕ߸ø³öÕâ¸ö×÷Ϊ·½°¸£¬ÎÒ½«ÓÃÕâ¸ö×÷Ϊһ¸ö»ú»áȥ̽¾¿ËûÃÇÕâÑù×öµÄ
»ù±¾Ô­Àí¡£Èç¹ûËûÃǵĻù±¾´ð°¸ÊÇ£º¡°ÎÒ±»½Ì×ÅÕâÑù×ö£¬µ«´ÓûÓÐÏëµ½¹ýΪʲô¡£¡±Õâ»á¸øÎÒÁôÏÂÒ»¸ö»µÓ¡Ïó¡£
µÚÈý¸ö·½°¸ÊÇÓà goto
Loop:
...
goto Loop;
Ó¦ÊÔÕßÈç¸ø³öÉÏÃæµÄ·½°¸£¬Õâ˵Ã÷»òÕßËûÊÇÒ»¸ö»ã±àÓïÑÔ³ÌÐòÔ±£¨ÕâÒ²ÐíÊǺÃÊ£©»òÕßËûÊÇÒ»¸öÏë½øÈëÐÂÁìÓòµÄBASIC/FORTRAN³ÌÐòÔ±¡£


Êý¾ÝÉùÃ÷£¨Data declarations£©


5. ÓñäÁ¿a¸ø³öÏÂÃæµÄ¶¨Òå
a) Ò»¸öÕûÐÍÊý£¨An integer£©
b) Ò»¸öÖ¸ÏòÕûÐÍÊýµÄÖ¸Õ루A pointer to an integer£©
c) Ò»¸öÖ¸ÏòÖ¸ÕëµÄµÄÖ¸Õ룬ËüÖ¸ÏòµÄÖ¸ÕëÊÇÖ¸ÏòÒ»¸öÕûÐÍÊý£¨A pointer to a pointer to an integer£©
d) Ò»¸öÓÐ10¸öÕûÐÍÊýµÄÊý×飨An array of 10 integers£©
e) Ò»¸öÓÐ10¸öÖ¸ÕëµÄÊý×飬¸ÃÖ¸ÕëÊÇÖ¸ÏòÒ»¸öÕûÐÍÊýµÄ£¨An array of 10 pointers to integers£©
f) Ò»¸öÖ¸ÏòÓÐ10¸öÕûÐÍÊýÊý×éµÄÖ¸Õ루A pointer to an array of 10 integers£©
g) Ò»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýÓÐÒ»¸öÕûÐͲÎÊý²¢·µ»ØÒ»¸öÕûÐÍÊý£¨A pointer to a function that takes an integer as an argument and returns an integer£©
h) Ò»¸öÓÐ10¸öÖ¸ÕëµÄÊý×飬¸ÃÖ¸ÕëÖ¸ÏòÒ»¸öº¯Êý£¬¸Ãº¯ÊýÓÐÒ»¸öÕûÐͲÎÊý²¢·µ»ØÒ»¸öÕûÐÍÊý£¨ An array of ten pointers to functions that take an integer argument and return an integer £©


´ð°¸ÊÇ£º
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer


ÈËÃǾ­³£Éù³ÆÕâÀïÓм¸¸öÎÊÌâÊÇÄÇÖÖÒª·­Ò»ÏÂÊé²ÅÄܻشðµÄÎÊÌ⣬ÎÒͬÒâÕâÖÖ˵·¨¡£µ±ÎÒдÕâƪÎÄÕÂʱ£¬ÎªÁËÈ·¶¨Óï·¨µÄÕýÈ·ÐÔ£¬ÎÒµÄÈ·²éÁËÒ»ÏÂÊé¡£
µ«Êǵ±ÎÒ±»ÃæÊÔµÄʱºò£¬ÎÒÆÚÍû±»Îʵ½Õâ¸öÎÊÌ⣨»òÕßÏà½üµÄÎÊÌ⣩¡£ÒòΪÔÚ±»ÃæÊÔµÄÕâ¶Îʱ¼äÀÎÒÈ·¶¨ÎÒÖªµÀÕâ¸öÎÊÌâµÄ´ð°¸¡£Ó¦ÊÔÕßÈç¹û²»ÖªµÀ
ËùÓеĴ𰸣¨»òÖÁÉٴ󲿷ִ𰸣©£¬ÄÇôҲ¾ÍûÓÐΪÕâ´ÎÃæÊÔ×ö×¼±¸£¬Èç¹û¸ÃÃæÊÔÕßûÓÐΪÕâ´ÎÃæÊÔ×ö×¼±¸£¬ÄÇôËûÓÖÄÜΪʲô³ö×¼±¸ÄØ£¿


Static


6. ¹Ø¼ü×ÖstaticµÄ×÷ÓÃÊÇʲô£¿


Õâ¸ö¼òµ¥µÄÎÊÌâºÜÉÙÓÐÈËÄܻشðÍêÈ«¡£ÔÚCÓïÑÔÖУ¬¹Ø¼ü×ÖstaticÓÐÈý¸öÃ÷ÏÔµÄ×÷Óãº
1). ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
2). ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
3). ÔÚÄ£¿éÄÚ£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄº¯ÊýÖ»¿É±»Õâһģ¿éÄÚµÄÆäËüº¯Êýµ÷Óá£ÄǾÍÊÇ£¬Õâ¸öº¯Êý±»ÏÞÖÆÔÚÉùÃ÷ËüµÄÄ£¿éµÄ±¾µØ·¶Î§ÄÚʹÓá£
´ó¶àÊýÓ¦ÊÔÕßÄÜÕýÈ·»Ø´ðµÚÒ»²¿·Ö£¬Ò»²¿·ÖÄÜÕýÈ·»Ø´ðµÚ¶þ²¿·Ö£¬Í¬ÊǺÜÉÙµÄÈËÄܶ®µÃµÚÈý²¿·Ö¡£ÕâÊÇÒ»¸öÓ¦ÊÔÕßµÄÑÏÖصÄȱµã£¬ÒòΪËûÏÔÈ»²»¶®µÃ±¾µØ»¯Êý¾ÝºÍ´úÂ뷶ΧµÄºÃ´¦ºÍÖØÒªÐÔ¡£


Const


7£®¹Ø

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 ÏÂÒ»Ò³ βҳ 4/5/5
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÊ²Ã´ÊǹþÏ£±í£¿ ÏÂһƪ£º³ÌÐòԱӦƸ×î±ä̬µÄÃæÊÔ¾­Àú

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

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