ѧϰlinuxϵÄc/c++±à³Ì
1£¬ÏÈÓÐlinux»·¾³
´îminGWºÍcygwin¶¼ÓеãÂé·³£¬×î×î¼òµ¥µÄ°ì·¨»¹ÊÇ×°¸öÕæÕýµÄlinux£¬ÓÃÐéÄâ»úÒ²ºÃ£¬ÔÚÍøÂçÉϵÄÁíһ̨»úÆ÷Ò²ºÃ¡£ÕâÑù²»½ö¿ì£¬¶øÇÒÄãÓÐÁËÕæÕýµÄ»·¾³¡£
2.»áC/C++ÓïÑÔ£¨¹À¼ÆÄã»áµÄ£©
3.ÈëÃŽ׶ÎÊìϤgccÃüÁîÐУ¬×î»ù±¾µÄ²ÎÊý£¬È磬-g,-W,-O,-o,-c ½¨Òé¿´man gcc(ºÜ´óÕÒÏëÒªµÄ)
4.±àÒëµÚÒ»¸öhelloworld³ÌÐò: »ù±¾ÃüÁî gcc helloworld.c -o helloworld
Ç°ÃæËĸö½×¶ÎµÄʱ¼ä¹À¼ÆÖ»Òª1-2Ìì¾Í¿ÉÒÔÁË
5.Ìá¸ß½×¶Î£¬ÄãÐèÒª¿ªÊ¼Á˽⣬²¢ÊìϤld,gdb,±àд»ù±¾µÄMakefile£¬Á˽âmake³ÌÐò£¬±à³Ì·½Ãæѧϰ*nixϵͳIPC,ÐźÅÐÐΪ£¨¸Ã½×¶Î·Ç³£³¤¹À¼ÆÒªÖÁÉÙ¼¸¸öÔÂ-Ò»Ä꣬¿´¸öÈËÎòÐÔºÍËù»¨Ê±¼äÁË£©
µ½Ä¿Ç°ÎªÖ¹£¬ÄãÒѾÊÇlinuxÈí¼þ¹¤³ÌʦÁË£¬ÏÂÃæµÄ¸ß¼¶ÊÇ¿ÉÑ¡µÄ:-)
6. ¸ß¼¶½×¶Î£º±à³Ì·½ÃæѧϰLinuxÄÚºËÔ´Âë½á¹¹,Çý¶¯¿ª·¢£¬½ø¶øÄܾ«¼òÄںˣ¬Á˽â¸÷ÖÖlibraryµÄ×÷ÓúÍÓ÷¨¡£±àÒëÆ÷·½Ã棺Á˽âϵͳ¸÷¸öÖ÷Òª¿âÈç libstdc++,glibc2(libc.so),ld-linux.so.2(¶¯Ì¬Á´½ÓÆ÷),Á˽âgccÆäËü¸÷ÖÖoption.ld¸÷ÖÖ£¬ option.±àд¸´ÔÓµÄMakefile£¬ÊìϤ²¢ÄÜʹÓÃautomakeºÍautoconf£¨Õâ¸ö½×¶Î£¬Äã×îºÃ×Ô¼ºÖÁÉÙ±àÒëºÍ°²×°Ò»´Îglibc, gcc,ÉõÖÁÉú³Écross-reference±àÒëÏ ......
ѧϰlinuxϵÄc/c++±à³Ì
1£¬ÏÈÓÐlinux»·¾³
´îminGWºÍcygwin¶¼ÓеãÂé·³£¬×î×î¼òµ¥µÄ°ì·¨»¹ÊÇ×°¸öÕæÕýµÄlinux£¬ÓÃÐéÄâ»úÒ²ºÃ£¬ÔÚÍøÂçÉϵÄÁíһ̨»úÆ÷Ò²ºÃ¡£ÕâÑù²»½ö¿ì£¬¶øÇÒÄãÓÐÁËÕæÕýµÄ»·¾³¡£
2.»áC/C++ÓïÑÔ£¨¹À¼ÆÄã»áµÄ£©
3.ÈëÃŽ׶ÎÊìϤgccÃüÁîÐУ¬×î»ù±¾µÄ²ÎÊý£¬È磬-g,-W,-O,-o,-c ½¨Òé¿´man gcc(ºÜ´óÕÒÏëÒªµÄ)
4.±àÒëµÚÒ»¸öhelloworld³ÌÐò: »ù±¾ÃüÁî gcc helloworld.c -o helloworld
Ç°ÃæËĸö½×¶ÎµÄʱ¼ä¹À¼ÆÖ»Òª1-2Ìì¾Í¿ÉÒÔÁË
5.Ìá¸ß½×¶Î£¬ÄãÐèÒª¿ªÊ¼Á˽⣬²¢ÊìϤld,gdb,±àд»ù±¾µÄMakefile£¬Á˽âmake³ÌÐò£¬±à³Ì·½Ãæѧϰ*nixϵͳIPC,ÐźÅÐÐΪ£¨¸Ã½×¶Î·Ç³£³¤¹À¼ÆÒªÖÁÉÙ¼¸¸öÔÂ-Ò»Ä꣬¿´¸öÈËÎòÐÔºÍËù»¨Ê±¼äÁË£©
µ½Ä¿Ç°ÎªÖ¹£¬ÄãÒѾÊÇlinuxÈí¼þ¹¤³ÌʦÁË£¬ÏÂÃæµÄ¸ß¼¶ÊÇ¿ÉÑ¡µÄ:-)
6. ¸ß¼¶½×¶Î£º±à³Ì·½ÃæѧϰLinuxÄÚºËÔ´Âë½á¹¹,Çý¶¯¿ª·¢£¬½ø¶øÄܾ«¼òÄںˣ¬Á˽â¸÷ÖÖlibraryµÄ×÷ÓúÍÓ÷¨¡£±àÒëÆ÷·½Ã棺Á˽âϵͳ¸÷¸öÖ÷Òª¿âÈç libstdc++,glibc2(libc.so),ld-linux.so.2(¶¯Ì¬Á´½ÓÆ÷),Á˽âgccÆäËü¸÷ÖÖoption.ld¸÷ÖÖ£¬ option.±àд¸´ÔÓµÄMakefile£¬ÊìϤ²¢ÄÜʹÓÃautomakeºÍautoconf£¨Õâ¸ö½×¶Î£¬Äã×îºÃ×Ô¼ºÖÁÉÙ±àÒëºÍ°²×°Ò»´Îglibc, gcc,ÉõÖÁÉú³Écross-reference±àÒëÏ ......
ѧϰlinuxϵÄc/c++±à³Ì
1£¬ÏÈÓÐlinux»·¾³
´îminGWºÍcygwin¶¼ÓеãÂé·³£¬×î×î¼òµ¥µÄ°ì·¨»¹ÊÇ×°¸öÕæÕýµÄlinux£¬ÓÃÐéÄâ»úÒ²ºÃ£¬ÔÚÍøÂçÉϵÄÁíһ̨»úÆ÷Ò²ºÃ¡£ÕâÑù²»½ö¿ì£¬¶øÇÒÄãÓÐÁËÕæÕýµÄ»·¾³¡£
2.»áC/C++ÓïÑÔ£¨¹À¼ÆÄã»áµÄ£©
3.ÈëÃŽ׶ÎÊìϤgccÃüÁîÐУ¬×î»ù±¾µÄ²ÎÊý£¬È磬-g,-W,-O,-o,-c ½¨Òé¿´man gcc(ºÜ´óÕÒÏëÒªµÄ)
4.±àÒëµÚÒ»¸öhelloworld³ÌÐò: »ù±¾ÃüÁî gcc helloworld.c -o helloworld
Ç°ÃæËĸö½×¶ÎµÄʱ¼ä¹À¼ÆÖ»Òª1-2Ìì¾Í¿ÉÒÔÁË
5.Ìá¸ß½×¶Î£¬ÄãÐèÒª¿ªÊ¼Á˽⣬²¢ÊìϤld,gdb,±àд»ù±¾µÄMakefile£¬Á˽âmake³ÌÐò£¬±à³Ì·½Ãæѧϰ*nixϵͳIPC,ÐźÅÐÐΪ£¨¸Ã½×¶Î·Ç³£³¤¹À¼ÆÒªÖÁÉÙ¼¸¸öÔÂ-Ò»Ä꣬¿´¸öÈËÎòÐÔºÍËù»¨Ê±¼äÁË£©
µ½Ä¿Ç°ÎªÖ¹£¬ÄãÒѾÊÇlinuxÈí¼þ¹¤³ÌʦÁË£¬ÏÂÃæµÄ¸ß¼¶ÊÇ¿ÉÑ¡µÄ:-)
6. ¸ß¼¶½×¶Î£º±à³Ì·½ÃæѧϰLinuxÄÚºËÔ´Âë½á¹¹,Çý¶¯¿ª·¢£¬½ø¶øÄܾ«¼òÄںˣ¬Á˽â¸÷ÖÖlibraryµÄ×÷ÓúÍÓ÷¨¡£±àÒëÆ÷·½Ã棺Á˽âϵͳ¸÷¸öÖ÷Òª¿âÈç libstdc++,glibc2(libc.so),ld-linux.so.2(¶¯Ì¬Á´½ÓÆ÷),Á˽âgccÆäËü¸÷ÖÖoption.ld¸÷ÖÖ£¬ option.±àд¸´ÔÓµÄMakefile£¬ÊìϤ²¢ÄÜʹÓÃautomakeºÍautoconf£¨Õâ¸ö½×¶Î£¬Äã×îºÃ×Ô¼ºÖÁÉÙ±àÒëºÍ°²×°Ò»´Îglibc, gcc,ÉõÖÁÉú³Écross-reference±àÒëÏ ......
1.staticÓÐʲôÓÃ;£¿£¨ÇëÖÁÉÙ˵Ã÷Á½ÖÖ£©
1)ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
2) ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
3) ÔÚÄ£¿éÄÚ£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄº¯ÊýÖ»¿É±»Õâһģ¿éÄÚµÄÆäËüº¯Êýµ÷Óá£ÄǾÍÊÇ£¬Õâ¸öº¯Êý±»ÏÞÖÆÔÚÉùÃ÷ËüµÄÄ£¿éµÄ±¾µØ·¶Î§ÄÚʹÓÃ
2.ÒýÓÃÓëÖ¸ÕëÓÐʲôÇø±ð£¿
1) ÒýÓñØÐë±»³õʼ»¯£¬Ö¸Õë²»±Ø¡£
2) ÒýÓóõʼ»¯ÒÔºó²»Äܱ»¸Ä±ä£¬Ö¸Õë¿ÉÒԸıäËùÖ¸µÄ¶ÔÏó¡£
3) ²»´æÔÚÖ¸Ïò¿ÕÖµµÄÒýÓ㬵«ÊÇ´æÔÚÖ¸Ïò¿ÕÖµµÄÖ¸Õë¡£
3.ÃèÊöʵʱϵͳµÄ»ù±¾ÌØÐÔ
ÔÚÌض¨Ê±¼äÄÚÍê³ÉÌض¨µÄÈÎÎñ£¬ÊµÊ±ÐÔÓë¿É¿¿ÐÔ¡£
4.È«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿ÔÚÄÚ´æÖÐÊÇ·ñÓÐÇø±ð£¿Èç¹ûÓУ¬ÊÇʲôÇø±ð£¿
È«¾Ö±äÁ¿´¢´æÔÚ¾²Ì¬Êý¾Ý¿â£¬¾Ö²¿±äÁ¿ÔÚ¶ÑÕ»¡£
5.ʲôÊÇƽºâ¶þ²æÊ÷£¿
×óÓÒ×ÓÊ÷¶¼ÊÇƽºâ¶þ²æÊ÷ ÇÒ×óÓÒ×ÓÊ÷µÄÉî¶È²îÖµµÄ¾ø¶ÔÖµ²»´óÓÚ1 ......
1.staticÓÐʲôÓÃ;£¿£¨ÇëÖÁÉÙ˵Ã÷Á½ÖÖ£©
1)ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
2) ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
3) ÔÚÄ£¿éÄÚ£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄº¯ÊýÖ»¿É±»Õâһģ¿éÄÚµÄÆäËüº¯Êýµ÷Óá£ÄǾÍÊÇ£¬Õâ¸öº¯Êý±»ÏÞÖÆÔÚÉùÃ÷ËüµÄÄ£¿éµÄ±¾µØ·¶Î§ÄÚʹÓÃ
2.ÒýÓÃÓëÖ¸ÕëÓÐʲôÇø±ð£¿
1) ÒýÓñØÐë±»³õʼ»¯£¬Ö¸Õë²»±Ø¡£
2) ÒýÓóõʼ»¯ÒÔºó²»Äܱ»¸Ä±ä£¬Ö¸Õë¿ÉÒԸıäËùÖ¸µÄ¶ÔÏó¡£
3) ²»´æÔÚÖ¸Ïò¿ÕÖµµÄÒýÓ㬵«ÊÇ´æÔÚÖ¸Ïò¿ÕÖµµÄÖ¸Õë¡£
3.ÃèÊöʵʱϵͳµÄ»ù±¾ÌØÐÔ
ÔÚÌض¨Ê±¼äÄÚÍê³ÉÌض¨µÄÈÎÎñ£¬ÊµÊ±ÐÔÓë¿É¿¿ÐÔ¡£
4.È«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿ÔÚÄÚ´æÖÐÊÇ·ñÓÐÇø±ð£¿Èç¹ûÓУ¬ÊÇʲôÇø±ð£¿
È«¾Ö±äÁ¿´¢´æÔÚ¾²Ì¬Êý¾Ý¿â£¬¾Ö²¿±äÁ¿ÔÚ¶ÑÕ»¡£
5.ʲôÊÇƽºâ¶þ²æÊ÷£¿
×óÓÒ×ÓÊ÷¶¼ÊÇƽºâ¶þ²æÊ÷ ÇÒ×óÓÒ×ÓÊ÷µÄÉî¶È²îÖµµÄ¾ø¶ÔÖµ²»´óÓÚ1 ......
Ìâ¼Ç£º
ËùÓеÄÍêÃÀ£¬¶¼ÊÇÔÚ±ÀÀ£µÄÒ»¿Ì´ïµ½µÄ£¡
ÎÒÒ»Ö±»Ø±Ü³ÌÐòµÄÄÚ´æ¹ÜÀí£¬ÒòΪ°®Ö®ÓúÉºÞÖ®ÓúÁÒ¡£µ«ÊÇ£¬»¹ÊÇÓɺܶàµÄÅóÓÑÒ»Ö±ÔÚÌåÕâ·½ÃæµÄÎÊÌ⣬ËùÒÔ¾ÍË÷ÐÔ°ÑËü̹°×ÁË£¬Ò²Ðí¶ÔÄãÎÒ¶¼ÊÇÒ»¼þºÃÊÂÇé¡£
Ê×ÏÈ£¬ÐèÒª¸ãÇå³þ£º±äÁ¿µÄÀàÐͺÍËüµÄ´æ´¢Àà±ðÊÇÁ½¸ö¸ÅÄî¡£
Êý¾ÝÀàÐͺÍÄÚ´æ¹ÜÀíûÓÐÖ±½ÓµÄ¹Øϵ¡£
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö£º
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀàËÆÓÚÁ´±í£¬ºÇºÇ¡£
3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å¡£
4¡¢ÎÄ×Ö³£Á¿Çø —³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å
5¡¢³ÌÐò´úÂëÇø—´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£
¶þ¡¢Àý×Ó³ÌÐò
ÕâÊÇÒ»¸öÇ°±²Ð´µÄ£¬·Ç³£Ïêϸ
//main.cpp
int a = 0; //È ......
Ìâ¼Ç£º
ËùÓеÄÍêÃÀ£¬¶¼ÊÇÔÚ±ÀÀ£µÄÒ»¿Ì´ïµ½µÄ£¡
ÎÒÒ»Ö±»Ø±Ü³ÌÐòµÄÄÚ´æ¹ÜÀí£¬ÒòΪ°®Ö®ÓúÉºÞÖ®ÓúÁÒ¡£µ«ÊÇ£¬»¹ÊÇÓɺܶàµÄÅóÓÑÒ»Ö±ÔÚÌåÕâ·½ÃæµÄÎÊÌ⣬ËùÒÔ¾ÍË÷ÐÔ°ÑËü̹°×ÁË£¬Ò²Ðí¶ÔÄãÎÒ¶¼ÊÇÒ»¼þºÃÊÂÇé¡£
Ê×ÏÈ£¬ÐèÒª¸ãÇå³þ£º±äÁ¿µÄÀàÐͺÍËüµÄ´æ´¢Àà±ðÊÇÁ½¸ö¸ÅÄî¡£
Êý¾ÝÀàÐͺÍÄÚ´æ¹ÜÀíûÓÐÖ±½ÓµÄ¹Øϵ¡£
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö£º
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀàËÆÓÚÁ´±í£¬ºÇºÇ¡£
3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©£¬È«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å¡£
4¡¢ÎÄ×Ö³£Á¿Çø —³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊÍ·Å
5¡¢³ÌÐò´úÂëÇø—´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£
¶þ¡¢Àý×Ó³ÌÐò
ÕâÊÇÒ»¸öÇ°±²Ð´µÄ£¬·Ç³£Ïêϸ
//main.cpp
int a = 0; //È ......
ÕâÊÇÈëÃÅƪÖÐÌáµ½µÄÄÇÁ½Ì⣺
int * (* (*fp1) (int) ) [10];
int *( *( *arr[5])())();
½â´ðÈçÏÂ
1.int * (* (*fp1) (int) ) [10];
´ÓÍâÍùÄÚ½øÐзÖÎö
a.typedef P=(* (*fp1) (int) )£¬ÄÇôÔÉùÃ÷¸ÄдΪ int*P[10]£¬ÕâÊÇÒ»¸öÓÐ10¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸ÏòÕûÐÍÊýµÄÖ¸Õë
b.typedef Q=(*fp1)£¬ÄÇôP¸ÄдΪ *Q(int)£¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýÓÐÒ»¸öintÐβΣ¬·µ»ØֵΪһ¸öÖ¸Õë¡£
c.*fp1 ÕâÊÇÒ»¸öÖ¸Õë
°´´ÓÏÂÍùÉϽøÐÐÐÞÊεķ½Ê½×éºÏ¡£
ÕâÊÇÒ»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýÓÐÒ»¸öintÐβΣ¬·µ»ØֵΪһ¸öÖ¸Ïò10¸öÔªËØÊý×éµÄÖ¸Õë¡£¸ÃÊý×éÀïµÄÿһ¸öÔªËض¼ÊÇÒ»¸öÖ¸ÏòÕûÐÎÊýµÄÖ¸Õë¡£
2.int *( *( *arr[5])())()
´ÓÍâÍùÄÚ½øÐзÖÎö
a.typedef P = ( *( *arr[5])()) £¬ÄÇôÔÉùÃ÷±»¸ÄдΪ int *P () £¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýûÓÐÐβΣ¬·µ»ØֵΪint*
b.typedef Q = *arr[5]£¬ÄÇôP±»¸ÄдΪ *(Q)() £¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýûÓÐÐβΣ¬·µ»ØֵΪһ¸öÖ¸Õë
c.*arr[5]£¬ÕâÊÇÒ»¸öÓÐ×Å5¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸Õë¡£
°´´ÓÏÂÍùÉϽøÐÐÐÞÊεķ½Ê½×éºÏ¡£
ÕâÊÇÒ»¸öÓÐ5¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýûÓÐÐβΣ¬Óзµ»ØÖµ¡£
ËüµÄ·µ»ØÖµÊÇÒ»¸öÖ¸Ïòº¯Êýµ ......
ÕâÊÇÈëÃÅƪÖÐÌáµ½µÄÄÇÁ½Ì⣺
int * (* (*fp1) (int) ) [10];
int *( *( *arr[5])())();
½â´ðÈçÏÂ
1.int * (* (*fp1) (int) ) [10];
´ÓÍâÍùÄÚ½øÐзÖÎö
a.typedef P=(* (*fp1) (int) )£¬ÄÇôÔÉùÃ÷¸ÄдΪ int*P[10]£¬ÕâÊÇÒ»¸öÓÐ10¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸ÏòÕûÐÍÊýµÄÖ¸Õë
b.typedef Q=(*fp1)£¬ÄÇôP¸ÄдΪ *Q(int)£¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýÓÐÒ»¸öintÐβΣ¬·µ»ØֵΪһ¸öÖ¸Õë¡£
c.*fp1 ÕâÊÇÒ»¸öÖ¸Õë
°´´ÓÏÂÍùÉϽøÐÐÐÞÊεķ½Ê½×éºÏ¡£
ÕâÊÇÒ»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýÓÐÒ»¸öintÐβΣ¬·µ»ØֵΪһ¸öÖ¸Ïò10¸öÔªËØÊý×éµÄÖ¸Õë¡£¸ÃÊý×éÀïµÄÿһ¸öÔªËض¼ÊÇÒ»¸öÖ¸ÏòÕûÐÎÊýµÄÖ¸Õë¡£
2.int *( *( *arr[5])())()
´ÓÍâÍùÄÚ½øÐзÖÎö
a.typedef P = ( *( *arr[5])()) £¬ÄÇôÔÉùÃ÷±»¸ÄдΪ int *P () £¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýûÓÐÐβΣ¬·µ»ØֵΪint*
b.typedef Q = *arr[5]£¬ÄÇôP±»¸ÄдΪ *(Q)() £¬ÕâÊÇÒ»¸öº¯Êý£¬¸Ãº¯ÊýûÓÐÐβΣ¬·µ»ØֵΪһ¸öÖ¸Õë
c.*arr[5]£¬ÕâÊÇÒ»¸öÓÐ×Å5¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸Õë¡£
°´´ÓÏÂÍùÉϽøÐÐÐÞÊεķ½Ê½×éºÏ¡£
ÕâÊÇÒ»¸öÓÐ5¸öÔªËصÄÊý×飬ÿ¸öÔªËض¼ÊÇÒ»¸öÖ¸Ïòº¯ÊýµÄÖ¸Õ룬¸Ãº¯ÊýûÓÐÐβΣ¬Óзµ»ØÖµ¡£
ËüµÄ·µ»ØÖµÊÇÒ»¸öÖ¸Ïòº¯Êýµ ......
ϵͳ»·¾³£ºUbuntu 9.04
Èí¼þ»·¾³£ºNetBeans 6.7.1 C/C++ ¡¢JDK1.6.0_16
±¾´ÎÄ¿µÄ£ºÍê³ÉNetBeans 6.7.1 C/C++ µÄÅäÖù¤×÷¡¢±àÒë²âÊÔ¼°¶ÔÖÐÎÄÖ§³Ö
Ê×ÏÈ´Ó¹ÙÍøÉÏÏÂÔØ×îаæµÄNetbeans Ñ¡ÔñC/C++¹¤×÷̨ÏÂÔØ[µã»÷½øÈë]£¬µ¯³öµÄÐÂÍøÒ³½«»á×Ô¶¯ÏÂÔØ£¬ÈçÏÂͼ£º
ÔÚ½øÐа²×°Ö®Ç°£¬ÎÒÃÇÏÈ°²×°JDK£¬²»ÓÃÈí¼þÔ´ÀïµÄJDK£¬Ç뿴֮ǰµÄÎÄÕ¡¾UbuntuÖÐJDKµÄ°²×°ÅäÖá¿¡£Ö®ºóÔÙ½øÐÐÖÐÎÄÖ§³ÖÉèÖã¬Õâ¶ÔÓÚNetbeansÄÜÏÔʾÖÐÎĺÜÖØÒª£¬²ÅÄܲ»³öÏÖÂÒÂë·½¿é£¬Ç뿴֮ǰµÄÎÄÕ¡¾UbuntuÖÐJAVAµÄÖÐÎÄÅäÖá¿¡£ok£¬Ö®ºóÔÚ“Öն˔ÊäÈëÒÔÏÂÃüÁîÔËÐа²×°£¬ÐèÒªÖ¸¶¨javahomeŶ
sudo sh netbeans-6.7-ml-cpp-linux.sh --javahome jdk1.6.0_16
Èô֮ǰJAVAµÄÉèÖÃÎÞÎóµÄ»°£¬Æô¶¯NetbeansÕâ¸öIDE½«²»»á³öÏÖÂÒÂë·½¿é£¬ÈçÏÂͼ£º
ÒòΪÎÒÃÇÏÂÔصÄÒѾÊÇ´øC/C++²å¼þµÄ°æ±¾£¬½ÓÏÂÀ´Òª¿ÉÒÔÉèÖñàÒëÆ÷¡£NetBeans C/C++ Ä£¿éÐèҪʹÓà C ±àÒëÆ÷¡¢C++ ±àÒëÆ÷¡¢make ʵÓóÌÐòºÍ gdb µ÷ÊÔÆ÷¡£NetbeansÉϵÄÎĵµÓëÖ§³Ö˵Ã÷£ºÔÚ Linux ƽ̨ÖУ¬Äú¿ÉÒÔʹÓà GNU ¹¤¾ß»ò Sun Studio ¹¤¾ß¡£
ÕâÀïÎÒÑ¡ÔñGNU¹¤¾ß£¬ÔÚ“Öն˔ÏÂÊäÈëÒÔÏÂÃüÁî°²×°ÕâЩ¹¤¾ß
sudo apt-get install g ......
ϵͳ»·¾³£ºUbuntu 9.04
Èí¼þ»·¾³£ºNetBeans 6.7.1 C/C++ ¡¢JDK1.6.0_16
±¾´ÎÄ¿µÄ£ºÍê³ÉNetBeans 6.7.1 C/C++ µÄÅäÖù¤×÷¡¢±àÒë²âÊÔ¼°¶ÔÖÐÎÄÖ§³Ö
Ê×ÏÈ´Ó¹ÙÍøÉÏÏÂÔØ×îаæµÄNetbeans Ñ¡ÔñC/C++¹¤×÷̨ÏÂÔØ[µã»÷½øÈë]£¬µ¯³öµÄÐÂÍøÒ³½«»á×Ô¶¯ÏÂÔØ£¬ÈçÏÂͼ£º
ÔÚ½øÐа²×°Ö®Ç°£¬ÎÒÃÇÏÈ°²×°JDK£¬²»ÓÃÈí¼þÔ´ÀïµÄJDK£¬Ç뿴֮ǰµÄÎÄÕ¡¾UbuntuÖÐJDKµÄ°²×°ÅäÖá¿¡£Ö®ºóÔÙ½øÐÐÖÐÎÄÖ§³ÖÉèÖã¬Õâ¶ÔÓÚNetbeansÄÜÏÔʾÖÐÎĺÜÖØÒª£¬²ÅÄܲ»³öÏÖÂÒÂë·½¿é£¬Ç뿴֮ǰµÄÎÄÕ¡¾UbuntuÖÐJAVAµÄÖÐÎÄÅäÖá¿¡£ok£¬Ö®ºóÔÚ“Öն˔ÊäÈëÒÔÏÂÃüÁîÔËÐа²×°£¬ÐèÒªÖ¸¶¨javahomeŶ
sudo sh netbeans-6.7-ml-cpp-linux.sh --javahome jdk1.6.0_16
Èô֮ǰJAVAµÄÉèÖÃÎÞÎóµÄ»°£¬Æô¶¯NetbeansÕâ¸öIDE½«²»»á³öÏÖÂÒÂë·½¿é£¬ÈçÏÂͼ£º
ÒòΪÎÒÃÇÏÂÔصÄÒѾÊÇ´øC/C++²å¼þµÄ°æ±¾£¬½ÓÏÂÀ´Òª¿ÉÒÔÉèÖñàÒëÆ÷¡£NetBeans C/C++ Ä£¿éÐèҪʹÓà C ±àÒëÆ÷¡¢C++ ±àÒëÆ÷¡¢make ʵÓóÌÐòºÍ gdb µ÷ÊÔÆ÷¡£NetbeansÉϵÄÎĵµÓëÖ§³Ö˵Ã÷£ºÔÚ Linux ƽ̨ÖУ¬Äú¿ÉÒÔʹÓà GNU ¹¤¾ß»ò Sun Studio ¹¤¾ß¡£
ÕâÀïÎÒÑ¡ÔñGNU¹¤¾ß£¬ÔÚ“Öն˔ÏÂÊäÈëÒÔÏÂÃüÁî°²×°ÕâЩ¹¤¾ß
sudo apt-get install g ......
Ò»¡¢Ò»¸ö¾¹ý±àÒëµÄC/C++µÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·Ö³ÉÒÔϼ¸¸ö²¿·Ö£º
¡¡¡¡1¡¢Õ»Çø£¨stack£©£ºÓɱàÒëÆ÷×Ô¶¯·ÖÅäºÍÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ¡¢¾Ö²¿±äÁ¿µÄÖµµÈ£¬ÉõÖÁº¯ÊýµÄµ÷Óùý³Ì¶¼ÊÇÓÃÕ»À´Íê³É¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
¡¡¡¡2¡¢¶ÑÇø£¨heap£© £ºÒ»°ãÓɳÌÐòÔ±ÊÖ¶¯ÉêÇëÒÔ¼°ÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽÀàËÆÓÚÁ´±í¡£
¡¡¡¡3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©£ºÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£³ÌÐò½áÊøºóÓÉϵͳÊͷſռ䡣
¡¡¡¡4¡¢ÎÄ×Ö³£Á¿Çø£º³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊͷſռ䡣
¡¡¡¡5¡¢³ÌÐò´úÂëÇø£º´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£
¡¡¡¡ÏÂÃæµÄÀý×Ó¿ÉÒÔÍêȫչʾ²»Í¬µÄ±äÁ¿ËùÕ¼µÄÄÚ´æÇøÓò£º
¡¡¡¡//main.cpp
¡¡¡¡int a = 0; È«¾Ö³õʼ»¯Çø
¡¡¡¡char *p1; È«¾Öδ³õʼ»¯Çø
¡¡¡¡main()
¡¡¡¡{
¡¡¡¡int b; //Õ»ÖÐ
¡¡¡¡char s[] = "abc"; //Õ»ÖÐ
¡¡¡¡char *p2; //Õ»ÖÐ
¡¡¡¡char *p3 = "123456"; //123456\0ÔÚ³£Á¿Çø£¬p3ÔÚÕ»ÉÏ
¡¡¡¡static int c =0£» //È«¾Ö£¨¾²Ì¬£©³õʼ»¯Çø
¡¡¡¡//Ò ......
Ò»¡¢Ò»¸ö¾¹ý±àÒëµÄC/C++µÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·Ö³ÉÒÔϼ¸¸ö²¿·Ö£º
¡¡¡¡1¡¢Õ»Çø£¨stack£©£ºÓɱàÒëÆ÷×Ô¶¯·ÖÅäºÍÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ¡¢¾Ö²¿±äÁ¿µÄÖµµÈ£¬ÉõÖÁº¯ÊýµÄµ÷Óùý³Ì¶¼ÊÇÓÃÕ»À´Íê³É¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
¡¡¡¡2¡¢¶ÑÇø£¨heap£© £ºÒ»°ãÓɳÌÐòÔ±ÊÖ¶¯ÉêÇëÒÔ¼°ÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽÀàËÆÓÚÁ´±í¡£
¡¡¡¡3¡¢È«¾ÖÇø£¨¾²Ì¬Çø£©£¨static£©£ºÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿µÄ´æ´¢ÊÇ·ÅÔÚÒ»¿éµÄ£¬³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍ¾²Ì¬±äÁ¿ÔÚÒ»¿éÇøÓò£¬ δ³õʼ»¯µÄÈ«¾Ö±äÁ¿ºÍδ³õʼ»¯µÄ¾²Ì¬±äÁ¿ÔÚÏàÁÚµÄÁíÒ»¿éÇøÓò¡£³ÌÐò½áÊøºóÓÉϵͳÊͷſռ䡣
¡¡¡¡4¡¢ÎÄ×Ö³£Á¿Çø£º³£Á¿×Ö·û´®¾ÍÊÇ·ÅÔÚÕâÀïµÄ¡£ ³ÌÐò½áÊøºóÓÉϵͳÊͷſռ䡣
¡¡¡¡5¡¢³ÌÐò´úÂëÇø£º´æ·Åº¯ÊýÌåµÄ¶þ½øÖÆ´úÂë¡£
¡¡¡¡ÏÂÃæµÄÀý×Ó¿ÉÒÔÍêȫչʾ²»Í¬µÄ±äÁ¿ËùÕ¼µÄÄÚ´æÇøÓò£º
¡¡¡¡//main.cpp
¡¡¡¡int a = 0; È«¾Ö³õʼ»¯Çø
¡¡¡¡char *p1; È«¾Öδ³õʼ»¯Çø
¡¡¡¡main()
¡¡¡¡{
¡¡¡¡int b; //Õ»ÖÐ
¡¡¡¡char s[] = "abc"; //Õ»ÖÐ
¡¡¡¡char *p2; //Õ»ÖÐ
¡¡¡¡char *p3 = "123456"; //123456\0ÔÚ³£Á¿Çø£¬p3ÔÚÕ»ÉÏ
¡¡¡¡static int c =0£» //È«¾Ö£¨¾²Ì¬£©³õʼ»¯Çø
¡¡¡¡//Ò ......