cÓïÑÔ³£¼û±ÊÊÔÌâ¼°´ð°¸ ÏÂÔØ±¾ÎÄ

cÓïÑÔ³£¼û±ÊÊÔÌâ×ܽá

cÓïÑÔ±ÊÊÔÌâ(¾Å) 2006-09-06 Tag: CÓïÑÔ 1£®

#include \int main() { int a; int *p;

p = &a;

*p = 0x500;

a = (int )(*(&p)); a = (int )(&(*p)); if(a == (int)p)

printf(\ else

printf(\}

ÇëÎʱ¾³ÌÐòµÄÊä³öÏÔʾÊÇʲô£¿ ´ð°¸£ºÊä³öÏÔʾΪ¡±equal!¡±

2£®

struct {

signed int bit0:1; signed int bit1:1; signed int bit2:1; signed int bit3:1; signed int bit4:1; signed int bit5:1; signed int bit6:1; signed int bit7:1;

}bits;

ÇëÎÊsizeof(bits)ÊÇ·ñÊÇÕýÈ·µÄ±í´ïʽ£¿

ÇëÎÊÓï¾äbits mybits; µÄ¶¨ÒåÊÇ·ñÕýÈ·£¿Èç¹û²»ÕýÈ·£¬ÒªÈçºÎÐÞ¸ÄÉÏÊöµÄ½á¹¹¶¨Òå²ÅÄÜʹ¸ÃÓï¾äÕýÈ·£¿Ð޸ĺóµÄ½á¹¹¶¨ÒåÊÇ·ñ»áÓ°Ïìsizeof(bits)µÄÕýÈ·ÐÔ£¿Èç¹ûÕýÈ·Ôò¸Ã±í´ïʽµÄֵΪ¶àÉÙ£¿Èç¹û½«ÉÏÊöµÄ½á¹¹ÖÐintÀàÐ͸ÄΪcharÀàÐÍ£¬´Ëʱsizeof(bits)µÄ´óСΪ¶àÉÙ£¿

´ð°¸£º1£©ÊÇÕýÈ·µÄ±í´ïʽ£¬ÒòΪsizeofºóÃæµÄÄÚÈÝ¿ÉÒÔÊÇÀàÐÍ£¬Ò²¿ÉÒÔÊDZäÁ¿¡£

2£©¸ÃÓï¾äµÄ¶¨Òå²»ÕýÈ·£¬ÒòΪ´ËʱµÄbitsΪһ¸ö±äÁ¿£»Ó¦¸ÃÕâÑùÐ޸ĽṹµÄ¶¨Òå typedef struct {

signed int bit0:1; signed int bit1:1; signed int bit2:1; signed int bit3:1; signed int bit4:1; signed int bit5:1; signed int bit6:1; signed int bit7:1; }bits;

Ð޸ĺósizeof(bits)±í´ïʽÒÀÈ»ÕýÈ·£¬ÆäֵΪ4£»ÀàÐ͸ÄΪcharºóÆäֵΪ1£¬×¢Òâ¸ÃÖµÊÇÔÚVC»·¾³ÖеÄ32λ³ÌÐòÖеõ½µÄÖµ£¬ÔÚ²»Í¬µÄ±àÒëÆ÷ÆäÖµÓпÉÄܲ»Í¬£¬Òò´ËÔÚ±à³Ìʱ²»ÄÜ×Ô¼º¼Ù¶¨ÀàËÆ½á¹¹µÄ´óС¡£ 3£®

struct bit{

unsigned int a[0]:1,a[1]:1,a[2]:1?.a[7]:1; }

ÇëÎÊÕâÖÖд·¨ÊÇ·ñÕýÈ·£¿ÎªÊ²Ã´£¿ ´ð°¸£º²»ÕýÈ·£¬Î»ÓòÖеıäÁ¿²»ÄÜÊÇÊý×é¡£

4£®

struct a { int x;

char y;

struct a z; struct a *p;

}

ÇëÎÊÕâÖÖ¶¨Òå½á¹¹ÕýÈ··ñ£¿ Èç¹ûÓÐÎÊÌ⣬ÎÊÌâÔÚÄÄÀ

´ð°¸£º½á¹¹Öв»ÄܶԶ¨Òå½á¹¹±¾ÉíµÄ·ÇÖ¸Õë±äÁ¿£¬Èç¹û±àÒëÆ÷Ö§³ÖÔò»áµ¼ÖÂÎÞÏÞǶÌ×£¬Òò´ËÒ»°ã±àÒëÆ÷¶¼»áÈÏΪstruct aÊÇ䶨ÒåµÄÀàÐÍ£¬¼´Ê¹ÌáǰÉùÃ÷Ò²²»»áÓÐÈκÎÓô¦¡£

5£® ʲôÊÇ¿ÉÖØÈ뺯Êý£¿CÓïÑÔÖÐд¿ÉÖØÈ뺯Êý£¬Ó¦×¢ÒâµÄÊÂÏ

´ð°¸£º¿ÉÖØÈ뺯ÊýÊÇÖ¸Äܹ»±»¶à¸öÏ̡߳°Í¬Ê±¡±µ÷Óõĺ¯Êý£¬²¢ÇÒÄܱ£Ö¤º¯Êý½á¹ûµÄÕýÈ·ÐԵĺ¯Êý¡£ÔÚ±àд¿ÉÖØÈ뺯Êýʱͨ³£Òª×¢ÒâÈçϵÄһЩÎÊÌ⣺

¾¡Á¿²»ÒªÊ¹ÓÃÈ«¾Ö±äÁ¿£¬¾²Ì¬±äÁ¿£¬Èç¹ûʹÓÃÁËÓ¦¸Ã×¢Òâ¶Ô±äÁ¿·ÃÎʵĻ¥³â¡£Í¨³£¿ÉÒÔ¸ù¾Ý¾ßÌåµÄÇé¿ö²ÉÓãºÐźÅÁ¿»úÖÆ£¬¹Øµ÷¶È»úÖÆ£¬¹ØÖжϻúÖÆµÈ·½Ê½À´±£Ö¤º¯ÊýµÄ¿ÉÖØÈëÐÔ¡£ ²»Òªµ÷Óò»¿ÉÖØÈëµÄº¯Êý£¬µ÷ÓÃÁ˲»¿ÉÖØÈëµÄº¯Êý»áʹ¸Ãº¯ÊýÒ²±äΪ²»¿ÉÖØÈëµÄº¯Êý¡£ ×¢Òâ¶ÔϵͳÖеÄÁÙ½ç×ÊÔ´£¬»¥³â×ÊÔ´µÄ·ÃÎÊ·½Ê½£¬·Àֹʹº¯Êý³ÉΪ²»¿ÉÖØÈëµÄº¯Êý¡£ Ò»°ãÇý¶¯³ÌÐò¶¼ÊDz»¿ÉÖØÈëµÄº¯Êý£¬Òò´ËÔÚ±àдÇý¶¯³ÌÐòʱһ¶¨Òª×¢ÒâÖØÈëµÄÎÊÌâ¡£

6£® ¼òÊöstack frame µÄº¬Òå¡£

´ð°¸£ºstack frameµÄÖÐÎÄÒëÃûΪ£ºÕ»¿ò¼Ü£¬±íʾº¯ÊýÔÚÕ»¿Õ¼äµÄµ÷Óòã´Î£¬ÒÔx86ƽ̨µÄº¯Êýµ÷ÓÃΪÀý£¬Í¨³£Ò»¸öº¯Êý±àÒë³É»ã±à³ÌÐò£¬¶¼ÓÐÈçϵĽṹ£º

ÆäÖеÄleaveÖ¸ÁîÏ൱ÓÚ£ºmov ebp,esp £»pop ebp

¸÷¸öº¯ÊýÔÚÕ»¿Õ¼äµÄÓ³ÏóΪ£º

test1º¯Êý test2º¯Êý test3º¯Êý

Òò´ËÔÚº¯Êýtest3ÖУ¬¾Í¿ÉÒÔ¸ù¾ÝÕâÖÖÕ»¿ò¼ÜµÄÐÎʽµÃµ½º¯Êýµ÷Óòã´ÎÉϵÄÿ¸öº¯ÊýµÄ»ùÖ·Ö¸Õ룬µ±Ç°Õ»Ö¸Õ룬ÒÔ¼°º¯Êýµ÷ÓõãµÈÐÅÏ¢¡£

7£® printf (¡°%d%d\\n¡±,++n, power(2,n)); ÆäÖÐpower(2,n)ΪʵÏÖÒ»¶¨¹¦Äܵĺ¯Êý Èç 2^n ¡£

ÇëÎÊÕâÖÖ±íʾ·½·¨ÓÐʲôDZÔÚµÄÎÊÌ⣿

´ð°¸£º±àÒëÆ÷µÄ²»Í¬£¬¶Ô++n ºÍpower(2,n)´¦ÀíµÄÏȺó˳Ðò²»Ò»Ñù£¬ÐγɶþÒåÐÔ£¬Ôì³É³Ì ÐòµÄÒÆÖ²ÐԲÒò´Ë×îºÃ°Ñ++n дÔÚprintfº¯ÊýÍâÃæ£¬ÒÔÏû³ý¶þÒåÐÔ¡£

printf (s);

ÇëÎÊÕâÑùµÄÓï¾äÓÐûÓÐÎÊÌ⣿£¨sΪһָÏòÓÐЧ×Ö·û´®µÄÖ¸Õ룩

´ð°¸£ºÃ»ÓÐ%µÄ»°£¬¿ÉÒÔÕâÑù±í´ï£¬Èç¹ûÓÐ%ÔÚsÖеϰ£¬ÓÐÒâÏë²»µ½µÄÊä³ö½á¹û¡£

9£® Á½¶Î´úÂë¹²´æÓÚÒ»¸öÎļþ£¬±àÒëʱÓÐÑ¡ÔñµÄ±àÒëÆäÖеÄÒ»²¿·Ö£¬ÇëÎÊÈçºÎʵÏÖ£¿ ´ð°¸£ºÓÐÁ½ÖÖ¼òµ¥µÄ°ì·¨¿ÉÒÔʵÏÖ£º

ÔÚÔ´ÂëÖÐʹÓÃÌõ¼þ±àÒëÓï¾ä£¬È»ºóÔÚ³ÌÐòÎļþÖж¨ÒåºêµÄÐÎʽÀ´Ñ¡ÔñÐè ÒªµÄ±àÒë´úÂë¡£

ÔÚÔ´ÂëÖÐʹÓÃÌõ¼þ±àÒëÓï¾ä£¬È»ºóÔÚ±àÒëÃüÁîµÄÃüÁîÖмÓÈëºê¶¨ÒåÃüÁî À´ÊµÏÖÑ¡Ôñ±àÒë¡£

10£®Êý¾Ý½á¹¹Ö¸Õë´«¸øº¯Êý£¬º¯ÊýÄÜ·ÃÎÊÊý¾Ýµ¥Ôª£¬µ«²»ÄÜÐÞ¸Äʵ¼ÊµÄÄÚÈÝ£¬ÈçºÎʵÏÖ£¿ ´ð°¸£º¶¨ÒåΪָÏò³£Á¿µÄÖ¸Õ룬ÕâÑùÖ¸ÕëËùÖ¸µÄÊý¾Ý½á¹¹ÖеÄÄÚÈݾͲ»»á±»¸Ä±ä¡£È磺 const ÀàÐÍ *p »ò ÀàÐÍ const *p

11£® ÔÚÍ·ÎļþÖж¨Ò徲̬±äÁ¿£¬¿ÉÄܲúÉúʲôÎÊÌ⣿

´ð°¸£ºÔÚʹÓÃÁ˸ÃÍ·ÎļþµÄÿ¸öc³ÌÐòÎļþÖж¼µ¥¶À´æÔÚÒ»¸ö¸Ã¾²Ì¬±äÁ¿£¬ÕâÑùÔì³É¿Õ¼äµÄÀ˷Ѳ¢ÇÒºÜÈÝÒ×ÒýÆð´íÎó¡£Òò´Ë½¨Òé²»ÒªÔÚÍ·ÎļþÖж¨ÒåÈκαäÁ¿¡£

12£®malloc()Óë calloc()µÄÇø±ð£¿ ´ð°¸£º

1£©²ÎÊýÉϵÄÇø±ð

malloc (size_t size);

calloc (size_t n , size_t size);

malloc·ÖÅäÒ»¿ésize´óСµÄÄÚ´æ¿é£¬¶øcalloc·ÖÅäÒ»¸ön*size´óСµÄÄÚ´æ¿é

2£©·µ»ØÄÚ´æ¿éµÄ״̬²»Í¬

malloc·ÖÅäµÄÄÚ´æ¿éûÓб»ÇåÁ㣬¶øcalloc·ÖÅäµÄÄÚ´æ¿éÊÇÇåÁËÁãµÄ¡£µ«Êǽ¨ÒéÔÚʹÓÃÄÚ´æÊ±£¬Èç¹ûÐèÒª³õʼ»¯£¬Ôò×îºÃ×Ô¼º°´ÕÕÐèÒªÀ´½øÐгõÊÔ»¯£¬²»ÒªÒÀÀµº¯ÊýµÄʵÏÖ˵Ã÷¡£

13£®¼Ä´æÆ÷±äÁ¿¿É²»¿ÉÒÔ·ÃÎÊÆäµØÖ·£¿¿É·ñÊÇÈ«¾Ö±äÁ¿£¿ÔÚʲô³¡ºÏʹÓüĴæÆ÷±äÁ¿£¿ ´ð°¸£ºÕâЩÎÊÌâ¶¼Óë±àÒëÆ÷µÄʵÏÖÓйأ¬½¨Òé²»ÒªÉùÃ÷È«¾Ö±äÁ¿Îª¼Ä´æÆ÷±äÁ¿£¬¼´Ê¹ÊǾֲ¿±äÁ¿¶¼×îºÃ²»ÒªÉùÃ÷ÆäΪ¼Ä´æÆ÷±äÁ¿£¬ÏÖÔڵıàÒëÆ÷ÔÚÓÅ»¯Ê±¶¼»á½ÏΪºÏÀíµÄ°²ÅżĴæÆ÷±äÁ¿µÄʹÓ㬶øÈËΪµÄ°²ÅÅÓÐʱ»áÔì³ÉÓÅ»¯µÄµÍЧ¡£ 14£®\µÄÇø±ð£¿

´ð°¸£ºÇ°ÕßÊÇÒ»¸ö×Ö·û´®²¢ÇÒÒÔ¡¯/0¡¯½áÊø£¬¶øºóÕßÖ»ÊÇÒ»¸ö¼òµ¥µÄ×Ö·û¡£

15£®°üº¬Ô¤¶¨ÒåÍ·Îļþ< > ºÍ\µÄÇø±ð£¿ ´ð°¸£º< >Ö»ÔÚÖ¸¶¨µÄĿ¼ÀïѰÕÒ±»°üº¬Îļþ£»\\ÏÈÔÚµ±Ç°Ä¿Â¼Ï²éÕÒ £¬ÔÙÔÚÖ¸¶¨Ä¿Â¼Ï²éÕÒ£»Í¨³£<>·½Ê½ÓÃÓÚϵͳµÄÍ·Îļþ£¬¶øÒ»°ãÓû§µÄÍ·ÎļþÓÃ\µÄ·½Ê½¡£

16£®strunt S_A{ int a[10]; }; void f() {

int i;

strunt S_A *s_ptr; for (i=0,i<10,i++)