C ºÍ C++ ×Ö·û´®×ÖÃæÁ¿
C ºÍ C++ ×Ö·û´®×ÖÃæÁ¿£¨String Literal£©¼ÈÓÐÏà֮ͬ´¦£¬ÓÖÓÐÒ»Ð©Çø±ð¡£Á˽âÕâЩÄÚÈݶÔÓÚ¼ÓÉî×Ö·û´®×ÖÃæÁ¿ÒÔ¼°Ïà¹ØÒ»Ð©¸ÅÄîµÄÀí½â¡¢³ÎÇåһЩ³£¼ûµÄ¸ÅÄîÎóÇø²»ÎÞÖúÒæ¡£±¾ÎÄÒÔÆÕͨ×Ö·û´®×ÖÃæÁ¿ "hello" ΪÀý×ܽá˵Ã÷ÈçÏ¡£
Ïàͬµã£º
×Ö·û´®×ÖÃæÁ¿ÊǶÔÏó
C/C++ ÖеĶÔÏó£¨Object£©Ö¸µÄÊÇÒ»¿é´æ´¢Çø¡£×Ö·û´®×ÖÃæÁ¿ÊDz»ÐèÒª´´½¨¹ý³Ì¾Í¿ÉʹÓõĶÔÏó£¬ËùÒÔËü¼ÈûÓбäÁ¿ÄÇÑùµÄÉùÃ÷»òÕß¶¨Ò壨×Ö·û´®×ÖÃæÁ¿ÊÇÎÞÃû¶ÔÏ󣩣¬Ò²²»ÐèÒªÏó¶¯Ì¬·ÖÅäµÄ¶ÔÏóÄÇÑù½øÐж¯Ì¬·ÖÅä¡£ÓÉÓÚÕâ¸öÔÒò£¬ÓÃÀ´ÏÞ¶¨±äÁ¿µÄÀàÐÍÏÞ¶¨·û£¨Èç const¡¢volatile£©ÒÔ¼°´æ´¢Àà±ðָʾ·û£¨Èç extern¡¢static¡¢auto¡¢register£©²»ÄÜÓÃÔÚÐÞÊÎ×Ö·û´®×ÖÃæÁ¿ÉÏ¡£
Êý×éÀàÐÍ
×Ö·û´®×ÖÃæÁ¿ÊÇÊý×éÀàÐ͵ĶÔÏó£¬Òò¶ø¾ßÓÐÊý×éµÄÒ»ÇÐÌØµã¡£¹ØÓÚÕâÒ»µãÔÚÏÂÃæ»¹»á½øÒ»²½ËµÃ÷¡£
¾²Ì¬´æ´¢ÆÚ
C/C++ ÖжÔÏóµÄÉú´æÆÚ°´ÕÕÆä´æ´¢ÐÔÖʿɷÖΪÈýÀࣺ¾²Ì¬´æ´¢ÆÚ£¨static storage duration£©¡¢×Ô¶¯´æ´¢ÆÚ£¨automatic storage duration£©ÒÔ¼°¶¯Ì¬´æ´¢ÆÚ£¨dynamic storage duration£©¡£ÏàÓ¦µØ£¬¶ÔÏó¿É¸ù¾Ý´æ´¢ÆÚÐÔÖÊ·ÖΪ¾²Ì¬¶ÔÏó¡¢×Ô¶¯¶ÔÏóºÍ¶¯Ì¬¶ÔÏóÈýÖÖ¡£
×Ö·û´®×ÖÃæÁ¿ÊǾ²Ì¬¶ÔÏó£¬ËùÒÔÔÚ³ÌÐòÔËÐÐÆÚ¼ä»áÒ»Ö±´æÔÚ¡£
×Ö·û´®×ÖÃæÁ¿ÊÇ×óÖµ£¬¶øÇÒÊDz»¿É±»¸ü¸ÄµÄ×óÖµ
ÀýÈ磬char s[] = "hello"; ÖÐµÄ “hello” ÊÇÊý×éÀàÐ͵Ä×óÖµ£¨lvalue£©£¬ÓÃÓÚ³õʼ»¯ s Êý×飻sizeof( "hello" ) ÒÔ¼° &"hello" ÖÐµÄ "hello" Ò²¶¼ÊÇ×óÖµ¡£ÔÚÕâЩÇé¿öÏ£¬"hello" ´¦ÓÚ×óÖµÓïÒåÉÏÏÂÎÄ»·¾³ÖУ¬ËùÒÔ²»»á²úÉúÏÂÃæ½«ÒªÌáµ½µÄÊý×éת»»ÎªÖ¸ÕëµÄÏÖÏó¡£
ÁíÍ⣬ÓÐЩÔËËã²»µ«ÒªÇóÆä²Ù×÷ÊýÊÇ×óÖµ£¬»¹ÒªÇó¿É±ä¡£ÀýÈ磬¶Ô¶ÔÏó½øÐи³Öµ¡¢×Ô¼Ó¡¢×Ô¼õµÈÔËËã¡£ÒòΪÊý×éÊDz»¿É±»¸ü¸ÄµÄ×óÖµ£¬ËùÒÔ²»ÄܶÔÊý×é½øÐÐÕâЩ²Ù×÷£¬Ò²¾ÍÊÇ˵²»´æÔÚÊý×éÀàÐ͵ĸ³Öµ¡¢×Ô¼Ó¡¢×Ô¼õµÈÔËËã¡£
×Ö·û´®×ÖÃæÁ¿¿ÉÒÔת»»ÎªÖ¸ÏòÆäÊ×µÚÒ»¸ö×Ö·ûµÄÖ¸Õë
´¦ÓÚÓÒÖµÓïÒå»·¾³ÖеÄ×Ö·û´®×ÖÃæÁ¿½«±»Ä¬ÈÏת»»ÎªÖ¸ÏòµÚÒ»¸ö×Ö·ûµÄÖ¸Õë¡£ÀýÈ磬char* p = "hello"; ÖÐµÄ “hello” ÔÚת»»Îª×Ö·ûÖ¸ÕëºóÓÃÓÚ³õʼ»¯Ö¸Õë±äÁ¿ p£»±í´ïʽ "hello"[0]£¨Ï൱ÓÚ *("hello" + 0) »òÕß *"hello"£©ÖÐµÄ “hello” Ò²ÊÇͬÑùת»»ÎªÖ¸Õëºó²ÎÓëϱêÔËË㣬µÈµÈ¡£
ÕâÖÖÐÔÖÊÒ²ÊÇÊý×éÀàÐ͵ÄÌØµã¡£ÔÚÓÒÖµÓïÒå»·¾³Ï£¬Ò»°ãÀàÐ͵ĶÔÏó±íʾµÄÖµÊÇÓÉÆä´æ´¢ÄÚÈݾö¶¨µÄ£»¶øÊý×éÀàÐ͵ĶÔÏóÓë´Ë²»Í¬£¬Ëü´ú±íµÄÖµ²»ÊÇÀ´Ô´ÓÚÆäÄÚÈÝ£¬¶øÊÇÀ´Ô´ÓÚÊý×é¶ÔÏóÊ×ÔªËØËùÔڵĵØÖ·¡£ÕâÊÇÊý×é×îÎªÌØÊâµÄµØ
Ïà¹ØÎĵµ£º
1. C++ËäÈ»Ö÷ÒªÊÇÒÔCµÄ»ù´¡·¢Õ¹ÆðÀ´µÄÒ»ÃÅÐÂÓïÑÔ£¬µ«Ëý²»ÊÇCµÄÌæ´úÆ·£¬²»ÊÇCµÄÉý¼¶£¬C++ºÍCÊÇÐֵܹØÏµ¡£Ã»ÓÐ˱ÈËÏȽøµÄ˵·¨£¬¸üÖØÒªµÄÒ»µãÊÇCºÍC++¸÷×Եıê׼ίԱ»áÊǶÀÁ¢µÄ£¬×îеÄC++±ê×¼ÊÇC++98£¬×îеÄC±ê×¼ÊÇC99¡£Òò´ËҲûÓÐÏÈѧCÔÙ˵C++µÄ˵·¨£¬Ò²²»ÔÙ£¨×¢ÒâÕâ¸ö"²»ÔÙ"£©ÓÐC++Óï·¨ÊÇCÓï·¨µÄ³¬¼¯µÄ˵·¨¡£
2. C++/CL ......
Ò»¡¢
1¡¢¹ØÓÚ×Ö½Ú˳Ðò£º»°ËµÔÚÌØ¶¨µÄÓ²¼þƽ̨ÉÏ£¬¶à×Ö½ÚÊý¾ÝµÄ˳Ðò´æ·ÅÓÐÁ½ÖÖ·½Ê½£¨little-endian¡¢big-endian£©¡£Ç°ÕßµÄÊý¾ÝµÄµÍ×Ö½Ú
²¿·Ö´æ·ÅÔڵ͵ØÖ·Äڴ棬ºóÕßÇ¡ºÃÏà·´¡£PCÒ»°ãÊÇ»ùÓÚIA-32΢´¦ÀíÆ÷£¬ÊôÓÚlittle-endian¡£Ä³Ð©RISC¼Ü¹¹µÄCPU£¬ÀýÈçSPARC¡¢
POWERPCµÈ£¬ÔòÊ ......
×óÖµÐÔ£¨lvalueness£©ÔÚC/C++ÖÐÊDZí´ïʽµÄÒ»¸öÖØÒªÊôÐÔ¡£Ö»ÓÐͨ¹ýÒ»¸ö×óÖµ±í´ïʽ²ÅÄÜÀ´ÒýÓü°¸ü¸ÄÒ»¸ö¶ÔÏó£¨object£©µÄÖµ¡££¨Ä³Ð©Çé¿öÏ£¬ÓÒÖµ±í´ïʽҲÄÜÒýÓã¨refer£©µ½Ä³Ò»¸ö¶ÔÏ󣬲¢ÇÒ¿ÉÄܼä½ÓÐ޸ĸöÔÏóµÄÖµ£¬ºóÊö£©¡£
ºÎν¶ÔÏó£¿Èç¹ûûÓÐÃ÷ȷ˵Ã÷£¬ÕâÀï˵µÄ¶ÔÏ󣬺ÍÏÁÒåµÄÀà/¶ÔÏó£¨class/object£© ......
c º¯ÊýÖ¸Õë
º¯ÊýÖ¸ÕëÊÇʲô£¿
Ò»¸öº¯ÊýÕ¼ÓÃÒ»¶ÎÁ¬ÐøÄÚ´æ¡£µ±µ÷ÓÃÒ»¸öº¯Êýʱ£¬Êµ¼ÊÉÏÊÇÌø×ªµ½º¯ÊýÈë¿ÚµØÖ·£¬Ö´Ðк¯ÊýÌåµÄ´úÂ룬Íê³Éºó·µ»Ø¡£
ÈçºÎÕÒµ½¶ÔÓ¦µÄÈë¿ÚµØÖ·£¿
ÕâÊÇÓɺ¯ÊýÃûÀ´±ê¼ÇµÄ£¬Êµ¼ÊÉÏ£¬º¯ÊýÃû¾ÍÊǺ¯ÊýµÄÈë¿ÚµØÖ·¡£ º¯ÊýÖ¸ÕëÊÇÒ»ÖÖÌØÊâÀàÐ͵ÄÖ¸Õë£¬Ë ......