ÏÂÃ涨ÒåÁËÒ»¸öλ½á¹¹¡£ struct{ unsigned incon: 8; /*inconÕ¼ÓõÍ×Ö½ÚµÄ0~7¹²8λ*/ unsigned txcolor: 4;/*txcolorÕ¼Óøß×Ö½ÚµÄ0~3λ¹²4λ*/ unsigned bgcolor: 3;/*bgcolorÕ¼Óøß×Ö½ÚµÄ4~6λ¹²3λ*/ unsigned blink: 1; /*blinkÕ¼Óøß×ֽڵĵÚ7λ*/ }ch; λ½á¹¹³ÉÔ±µÄ·ÃÎÊÓë½á¹¹³ÉÔ±µÄ·ÃÎÊÏàͬ¡£ ÀýÈç: ·ÃÎÊÉÏÀýλ½á¹¹ÖеÄbgcolor³ÉÔ±¿Éд³É: ch.bgcolor
×¢Òâ: 1. λ½á¹¹ÖеijÉÔ±¿ÉÒÔ¶¨ÒåΪunsigned, Ò²¿É¶¨ÒåΪsigned, µ«µ±³ÉÔ±³¤ ¶ÈΪ1ʱ, »á±»ÈÏΪÊÇunsignedÀàÐÍ¡£ÒòΪµ¥¸öλ²»¿ÉÄܾßÓзûºÅ¡£ 2. λ½á¹¹ÖеijÉÔ±²»ÄÜʹÓÃÊý×éºÍÖ¸Õë, µ«Î»½á¹¹±äÁ¿¿ÉÒÔÊÇÊý×éºÍÖ¸Õë, Èç¹ûÊÇÖ¸Õë, Æä³ÉÔ±·ÃÎÊ·½Ê½Í¬½á¹¹Ö¸Õë¡£ 3. λ½á¹¹×ܳ¤¶È(λÊý), ÊǸ÷¸öλ³ÉÔ±¶¨ÒåµÄλÊýÖ®ºÍ, ¿ÉÒÔ³¬¹ýÁ½¸ö×Ö ½Ú¡£ 4. λ½á¹¹³ÉÔ±¿ÉÒÔÓëÆäËü½á¹¹³ÉÔ±Ò»ÆðʹÓᣠÀýÈç: struct info{ char name[8]; int age; struct addr address; float pay; unsigned state: 1; unsigned pay: 1; }workers; ÉÏÀýµÄ½á¹¹¶¨ÒåÁ˹ØÓÚÒ»¸ö¹¤È˵ÄÐÅÏ¢¡£ÆäÖÐÓÐÁ½¸öλ½á¹¹³ÉÔ±, ÿ¸öλ½á ¹¹³ÉÔ±Ö»ÓÐһλ, Òò´ËÖ»Õ¼Ò»¸ö×Ö½Úµ«±£´æÁËÁ½¸öÐÅÏ¢, ¸Ã×Ö½ÚÖеÚһλ±íʾ¹¤ È˵Ä״̬, µÚ¶þλ±íʾ¹¤×ÊÊÇ·ñÒÑ·¢·Å¡£Óɴ˿ɼûʹÓÃλ½á¹¹¿ÉÒÔ½ÚÊ¡´æÖü¿Õ¼ä¡£ -------------------------------------------------------------------------- 22.ÏÂÃæµÄº¯ÊýʵÏÖÔÚÒ»¸ö¹Ì¶¨µÄÊýÉϼÓÉÏÒ»¸öÊý£¬ÓÐʲô´íÎ󣬸ÄÕý int add_n(int n) { static int i=100; i+=n; return i; } ´ð: ÒòΪstaticʹµÃiµÄÖµ»á±£ÁôÉϴεÄÖµ¡£ È¥µôstatic¾Í¿ÉÁË -------------------------------------------------------------------------- 23.ÏÂÃæµÄ´úÂëÓÐʲôÎÊÌâ class A { public: A() { p=this; } ~A() { if(p!=NULL) { delete p; p=NULL; } } A* p; }; ´ð: »áÒýÆðÎÞÏ޵ݹé -------------------------------------------------------------------------- 24. union a { int a_int1; double a_double; int a_int2; }; typedef struct { a a1; char y; } b; class c { double c_double; b b1; a a2; }; Êä³öcout<´ð: VC6»·¾³ÏµóöµÄ½á¹ûÊÇ32 Áí: ÎÒ(sun)ÔÚVC6.0+win2kÏÂ×ö¹ýÊÔÑé: short - 2 int-4 float-4 double-8 Ö¸Õë-4 sizeof(union)£¬ÒԽṹÀïÃæsize×î´óµÄΪunionµÄsize ½âÎöCÓïÑÔÖеÄsizeof Ò»¡¢sizeofµÄ¸ÅÄî¡¡ ¡¡¡¡ sizeofÊÇCÓïÑÔµÄÒ»ÖÖµ¥Ä¿²Ù×÷·û£¬ÈçCÓïÑÔµÄÆäËû²Ù×÷·û++¡¢--µÈ¡£Ëü²¢²»ÊǺ¯Êý¡£sizeof²Ù×÷·ûÒÔ×Ö½ÚÐÎʽ¸ø³öÁËÆä²Ù×÷ÊýµÄ´æ´¢´óС¡£²Ù×÷Êý¿ÉÒÔÊÇÒ»¸ö±í´ïʽ»òÀ¨ÔÚÀ¨ºÅÄÚµÄÀàÐÍÃû¡£²Ù×÷ÊýµÄ´æ´¢´óСÓɲÙ×÷ÊýµÄÀàÐ;ö¶¨¡£¡¡ ¶þ¡¢sizeofµÄʹÓ÷½·¨¡¡ ¡¡¡¡ 1¡¢ÓÃÓÚÊý¾ÝÀàÐÍ¡¡ ¡¡¡¡ sizeofʹÓÃÐÎʽ£ºsizeof£¨type£©¡¡ ¡¡¡¡Êý¾ÝÀàÐͱØÐëÓÃÀ¨ºÅÀ¨×¡¡£Èçsizeof£¨int£©¡£¡¡ ¡¡¡¡ 2¡¢ÓÃÓÚ±äÁ¿¡¡ ¡¡¡¡ sizeofʹÓÃÐÎʽ£ºsizeof£¨var_name£©»òsizeof¡¡var_name¡¡ ¡¡¡¡±äÁ¿Ãû¿ÉÒÔ²»ÓÃÀ¨ºÅÀ¨×¡¡£Èçsizeof¡¡(var_name)£¬sizeof¡¡var_nameµÈ¶¼ÊÇÕýÈ·ÐÎʽ¡£´øÀ¨ºÅµÄÓ÷¨¸üÆձ飬´ó¶àÊý³ÌÐòÔ±²ÉÓÃÕâÖÖÐÎʽ¡£¡¡ ¡¡¡¡×¢Ò⣺sizeof²Ù×÷·û²»ÄÜÓÃÓÚº¯ÊýÀàÐÍ£¬²»ÍêÈ«ÀàÐÍ»òλ×ֶΡ£²»ÍêÈ«ÀàÐÍÖ¸¾ßÓÐδ֪´æ´¢´óСµÄÊý¾ÝÀàÐÍ£¬Èçδ֪´æ´¢´óСµÄÊý×éÀàÐÍ¡¢Î´ÖªÄÚÈݵĽṹ»òÁªºÏÀàÐÍ¡¢voidÀàÐ͵ȡ£¡¡ ¡¡¡¡Èçsizeof(max)Èô´Ëʱ±äÁ¿max¶¨ÒåΪint¡¡max(),sizeof(char_v)¡¡Èô´Ëʱchar_v¶¨ÒåΪchar¡¡char_v¡¡[MAX]ÇÒMAXδ֪£¬sizeof(void)¶¼²»ÊÇÕýÈ·ÐÎʽ¡£¡¡ Èý¡¢sizeofµÄ½á¹û¡¡ ¡¡¡¡ sizeof²Ù×÷·ûµÄ½á¹ûÀàÐÍÊÇsize_t£¬ËüÔÚÍ·Îļþ ÖÐtypedefΪunsigned¡¡intÀàÐÍ¡£¸ÃÀàÐͱ£Ö¤ÄÜÈÝÄÉʵÏÖËù½¨Á¢µÄ×î´ó¶ÔÏóµÄ×Ö½Ú´óС¡£¡¡ ¡¡¡¡ 1¡¢Èô²Ù×÷Êý¾ßÓÐÀàÐÍchar¡¢unsigned¡¡char»òsigned¡¡char£¬Æä½á¹ûµÈÓÚ1¡£¡¡ ¡¡¡¡ ANSI¡¡CÕýʽ¹æ¶¨×Ö·ûÀàÐÍΪ1×Ö½Ú¡£¡¡ ¡¡¡¡ 2¡¢int¡¢unsigned¡¡int¡¡¡¢short¡¡int¡¢unsigned¡¡short¡¡¡¢long¡¡int¡¡¡¢unsigned¡¡long¡¡¡¢ float¡¢double¡¢long¡¡doubleÀàÐ͵Äsizeof¡¡ÔÚANSI¡¡CÖÐûÓоßÌå¹æ¶¨£¬´óСÒÀÀµÓÚʵÏÖ£¬Ò»°ã¿ÉÄÜ·Ö±ðΪ2¡¢2¡¢2¡¢2¡¢ 4¡¢4¡¢4¡¢8¡¢10¡£¡¡ ¡¡¡¡ 3¡¢µ±²Ù×÷ÊýÊÇÖ¸Õëʱ£¬sizeofÒÀÀµÓÚ±àÒëÆ÷¡£ÀýÈçMicrosoft¡¡C/C++(www.cppentry.com)7.0ÖУ¬nearÀàÖ¸Õë×Ö½ÚÊýΪ2£¬far¡¢hugeÀàÖ¸Õë×Ö½ÚÊýΪ4¡£Ò»°ãUnixµÄÖ¸Õë×Ö½ÚÊýΪ4¡£¡¡ ¡¡¡¡ 4¡¢µ±²Ù×÷Êý¾ßÓÐÊý×éÀàÐÍʱ£¬Æä½á¹ûÊÇÊý×éµÄ×Ü×Ö½ÚÊý¡£¡¡ ¡¡¡¡ 5¡¢ÁªºÏÀàÐͲÙ×÷ÊýµÄsizeofÊÇÆä×î´ó×Ö½Ú³ÉÔ±µÄ×Ö½ÚÊý¡£½á¹¹ÀàÐͲÙ×÷ÊýµÄsizeofÊÇÕâÖÖÀàÐͶÔÏóµÄ×Ü×Ö½ÚÊý£¬°üÀ¨Èκε油ÔÚÄÚ¡£¡¡ ¡¡¡¡ÈÃÎÒÃÇ¿´ÈçϽṹ£º¡¡ ¡¡¡¡ struct¡¡{char¡¡b;¡¡double¡¡x;}¡¡a;¡¡ ¡¡¡¡ÔÚijЩ»úÆ÷ÉÏsizeof£¨a£©=12£¬¶øÒ»°ãsizeof£¨char£©+¡¡sizeof£¨double£©=9¡£¡¡ ¡¡¡¡ÕâÊÇÒòΪ±àÒëÆ÷ÔÚ¿¼ÂǶÔÆëÎÊÌâʱ£¬ÔڽṹÖвåÈë¿ÕλÒÔ¿ØÖƸ÷³ÉÔ±¶ÔÏóµÄµØÖ·¶ÔÆë¡£ÈçdoubleÀàÐ͵Ľṹ³ÉÔ±xÒª·ÅÔÚ±»4Õû³ýµÄµØÖ·¡£¡¡ ¡¡¡¡ 6¡¢Èç¹û²Ù×÷ÊýÊǺ¯ÊýÖеÄÊý×éÐβλòº¯ÊýÀàÐ͵ÄÐβΣ¬sizeof¸ø³öÆäÖ¸ÕëµÄ´óС¡£¡¡ ËÄ¡¢sizeofÓëÆäËû²Ù×÷·ûµÄ¹Øϵ¡¡ ¡¡¡¡ sizeofµÄÓÅÏȼ¶Îª2¼¶£¬±È/¡¢%µÈ3¼¶ÔËËã·ûÓÅÏȼ¶¸ß¡£Ëü¿ÉÒÔÓëÆäËû²Ù×÷·ûÒ»Æð×é³É±í´ïʽ¡£Èçi*sizeof£¨int£©£»ÆäÖÐiΪintÀàÐͱäÁ¿¡£¡¡ Îå¡¢sizeofµÄÖ÷ÒªÓÃ;¡¡ ¡¡¡¡ 1¡¢sizeof²Ù×÷·ûµÄÒ»¸öÖ÷ÒªÓÃ;ÊÇÓë´æ´¢·ÖÅäºÍI/OϵͳÄÇÑùµÄÀý³Ì½øÐÐͨÐÅ¡£ÀýÈ磺 |