¼ÙÈçÒ»¸ö΢´¦ÀíÆ÷ ʹÓà 2bytes ÓÃÓÚ integers£»1 byte ÓÃÓÚ characters£»
ÓÐÈçϳÌÐò
C/C++ code:
unsigned char rij[4]={2,2,3,4};
int *p=(char*)(rij+1);
*p=257;
(char*)p+=1;
*p=1051;
printf("%d%d%d%d\n",*rij,*(rij+1),rij[2],rij[3]);(
Êä³öµÄ½á¹ûÓ¦¸ÃÊÇÊ²Ã´ÄØ£¿
×Ô¼º×ªÔÎÁË Ã»Åª³öÀ´ »¹Çë¸÷λ´ó´óÖ¸µã лл
PS:
¼òµ¥µã˵ ¾ÍÊÇÏëÎÊÏÂ
*p=(char*)rij;
Óë
*p=*rij;
ÓÐÊ²Ã´Çø±ð лл
*p=(char*)rij;
Óë
*p=*rij;
*rijÏ൱ÓÚÈ¡µØÖ·rijÀïÃæµÄÄÚÈÝ£¬¶ø£¨char*£©rij£¬Ï൱ÓÚÀàÐÍÇ¿ÖÆ×ª»»£¬½á¹û»¹ÊÇÒ»¸öÖ¸Õë¡£
Æäʵ¥Ö÷°ÑÎÕסһµã£º
¶ÔÓÚÄãµÄintÐÍÖ¸Õëp£¬p+1£¬Ï൱ÓÚµØÖ·¼Ó2£»¶ø¶ÔÓÚÄãµÄrij£¬rij+1,Ï൱ÓÚµØÖ·¼Ó1.
ÖÁÓÚÊý×éÀïÃæ×îºóµ½µ×ÊÇʲôֵ£¬»¹ÓëÄãcpuÊÇlittle endian»¹ÊÇbig endianÓйء£
int *p=(char*)(rij+1);
Ä㽫һ¸öintÐÍÖ¸Õë½ÓÊÕÒ»¸öcharÐÍÖ¸Õ룬Õâ»á²úÉú´íÎóµÄ£¡
ÔÚVCÖÐshortÊÇ2bytes£¬Èç¹ûÄãµÄ΢´¦ÀíÆ÷µÄCPUģʽÓëPCÏàͬ£¬¿ÉÔÚVCÉϵ¥²½ÔËÐÐÕâ¸ö³ÌÐòÀ´¿´½á¹û£¬µ«Òª°Ñp¶¨ÒåΪshort *p¡£
ѧϰ
¼ÇºÃÖ¸ÕëÖ®¼äµÄת»»ÔÔò£¬´Óchar*תΪint*,´¦ÀíÊý×鷽ʽҲÊǰ´int½øÐУ¬¶àÉÙ×Ö½ÚÊǸù¾ÝCPUµÄintÊǶàÉÙ×Ö½Ú¡£·´¹ýÀ´Ò²Ò»Ñù¡£
int *p=(char*)(rij+1);
Õâ¾äµÈЧÓÚ
int *p;
p =(char*)(rij+1);
¶ø
*p=(char*)rij;
Óë
*p=*rij;
´ó¼ÒºÃ£¬ÕâÊÇÒ»¸öÖ÷ÒªÃæÏòc/c++/mfcµÄȺ£¬×î½ü½øÐÐÁËÒ»´Î´óÇåÀí£¬»¶Ó¸÷λ¸ßÊÖ¼ÓÈ룬ºÃѧ°®ÎʵÄÐÂÊÖ£¬Ò²¿ÉÒÔÉêÇëµÄ£¬ÉêÇë¸ñʽ Ö°Òµ£¨c/c++/mfc ÈÎѡһ»òÕ߶ࣩ ¹¤×÷ÄêÏÞ£¨Ñ§ÉúÖ±½Óд´ó¼¸£©¾ÍÐÐÁË£¬ÈëȺµÄÒªÇó¾ÍÊÇÒª» ......