*c=a+b;
return (a>0 && b>0 &&(*c<0 && b<0 &&(*c>a || *c>b))); }
·ÖÎö£º
struct bit { int a:3; int b:2; int c:3; };
int main() {
bit s;
char *c=(char*)&s; cout<<
*c=0x99;
cout << s.a <<<<< int a=-1; printf(\return 0; }
Êä³öΪʲôÊÇ 4 1 -1 -4
ffffffff
ÒòΪ0x99ÔÚÄÚ´æÖбíʾΪ 100 11 001 , a = 001, b = 11, c = 100
µ±cΪÓзûºÏÊýʱ, c = 100, ×î¸ß1Ϊ±íʾcΪ¸ºÊý£¬¸ºÊýÔÚ¼ÆËã»úÓò¹Âë±íʾ£¬ËùÒÔc = -4;ͬÀí b = -1;
µ±cΪÓзûºÏÊýʱ, c = 100,¼´ c = 4,ͬÀí b = 3
λÓò £º
ÓÐЩÐÅÏ¢Ôڴ洢ʱ£¬²¢²»ÐèÒªÕ¼ÓÃÒ»¸öÍêÕûµÄ×Ö½Ú£¬ ¶øÖ»ÐèÕ¼¼¸¸ö»òÒ»¸ö¶þ½øÖÆλ¡£ÀýÈçÔÚ´æ·ÅÒ»¸ö¿ª¹ØÁ¿Ê±£¬Ö»ÓÐ0ºÍ1 Á½ÖÖ״̬£¬ÓÃһλ¶þ½øλ¼´¿É¡£ÎªÁ˽ÚÊ¡´æ´¢¿Õ¼ä£¬²¢Ê¹´¦Àí¼ò±ã£¬£ÃÓïÑÔÓÖÌṩÁËÒ»ÖÖÊý¾Ý½á¹¹£¬³ÆΪ¡°Î»Óò¡±»ò¡°Î»¶Î¡±¡£Ëùν¡°Î»Óò¡±ÊÇ°ÑÒ»¸ö×Ö½ÚÖеĶþ½øλ»®·ÖΪ¼¸¸ö²»Í¬µÄÇøÓò£¬²¢ËµÃ÷ÿ¸öÇøÓòµÄλÊý¡£Ã¿¸öÓòÓÐÒ»¸öÓòÃû£¬ÔÊÐíÔÚ³ÌÐòÖа´ÓòÃû½øÐвÙ×÷¡£ÕâÑù¾Í¿ÉÒ԰Ѽ¸¸ö²»Í¬µÄ¶ÔÏóÓÃÒ»¸ö×ֽڵĶþ½øÖÆλÓòÀ´±íʾ¡£Ò»¡¢Î»ÓòµÄ¶¨ÒåºÍλÓò±äÁ¿µÄ˵Ã÷λÓò¶¨ÒåÓë½á¹¹¶¨ÒåÏà·Â£¬ÆäÐÎʽΪ£º struct λÓò½á¹¹Ãû { λÓòÁбí };
ÆäÖÐλÓòÁбíµÄÐÎʽΪ£º ÀàÐÍ˵Ã÷·û λÓòÃû£ºÎ»Óò³¤¶È ÀýÈ磺 struct bs {
int a:8; int b:2; int c:6;
};
λÓò±äÁ¿µÄ˵Ã÷Óë½á¹¹±äÁ¿ËµÃ÷µÄ·½Ê½Ïàͬ¡£ ¿É²ÉÓÃÏȶ¨Òåºó˵Ã÷£¬Í¬Ê±¶¨Òå˵Ã÷»òÕßÖ±½Ó˵Ã÷ÕâÈýÖÖ·½Ê½¡£ÀýÈ磺 struct bs { int a:8; int b:2; int c:6; }data;
˵Ã÷dataΪbs±äÁ¿£¬¹²Õ¼Á½¸ö×Ö½Ú¡£ÆäÖÐλÓòaÕ¼8λ£¬Î»ÓòbÕ¼2λ£¬Î»ÓòcÕ¼6λ¡£¶ÔÓÚλÓòµÄ¶¨ÒåÉÐÓÐÒÔϼ¸µã˵Ã÷£º
1. Ò»¸öλÓò±ØÐë´æ´¢ÔÚͬһ¸ö×Ö½ÚÖУ¬²»ÄÜ¿çÁ½¸ö×Ö½Ú¡£ÈçÒ»¸ö×Ö½ÚËùÊ£¿Õ¼ä²»¹»´æ·ÅÁíһλÓòʱ£¬Ó¦´ÓÏÂÒ»µ¥ÔªÆð´æ·Å¸ÃλÓò¡£Ò²¿ÉÒÔÓÐÒâʹijλÓò´ÓÏÂÒ»µ¥Ôª¿ªÊ¼¡£ÀýÈ磺 struct bs {
unsigned a:4
unsigned :0 /*¿ÕÓò*/
unsigned b:4 /*´ÓÏÂÒ»µ¥Ôª¿ªÊ¼´æ·Å*/ unsigned c:4
}
ÔÚÕâ¸öλÓò¶¨ÒåÖУ¬aÕ¼µÚÒ»×Ö½ÚµÄ4룬ºó4λÌî0±íʾ²»Ê¹Óã¬b´ÓµÚ¶þ×Ö½Ú¿ªÊ¼£¬Õ¼ÓÃ4룬cÕ¼ÓÃ4λ¡£
2. ÓÉÓÚλÓò²»ÔÊÐí¿çÁ½¸ö×Ö½Ú£¬Òò´ËλÓòµÄ³¤¶È²»ÄÜ´óÓÚÒ»¸ö×ֽڵij¤¶È£¬Ò²¾ÍÊÇ˵²»Äܳ¬¹ý8λ¶þ½øλ¡£
3. λÓò¿ÉÒÔÎÞλÓòÃû£¬ÕâʱËüÖ»ÓÃÀ´×÷Ìî³ä»òµ÷ÕûλÖá£ÎÞÃûµÄλÓòÊDz»ÄÜʹÓõġ£ÀýÈ磺 struct k {
int a:1
int :2 /*¸Ã2λ²»ÄÜʹÓÃ*/ int b:3 int c:2
};
´ÓÒÔÉÏ·ÖÎö¿ÉÒÔ¿´³ö£¬Î»ÓòÔÚ±¾ÖÊÉϾÍÊÇÒ»ÖֽṹÀàÐÍ£¬ ²»¹ýÆä³ÉÔ±ÊÇ°´¶þ½øλ·ÖÅäµÄ¡£
¶þ¡¢Î»ÓòµÄʹÓÃλÓòµÄʹÓúͽṹ³ÉÔ±µÄʹÓÃÏàͬ£¬ÆäÒ»°ãÐÎʽΪ£º λÓò±äÁ¿Ãû?λÓòÃû λÓòÔÊÐíÓø÷ÖÖ¸ñʽÊä³ö¡£ main(){ struct bs {
unsigned a:1; unsigned b:3; unsigned c:4; } bit,*pbit; bit.a=1; bit.b=7; bit.c=15; pri
¸Ä´í£º #include
int main(void) {
int **p;
int arr[100];
p = &arr;
return 0; }
½â´ð£º
¸ã´íÁË,ÊÇÖ¸ÕëÀàÐͲ»Í¬, int **p; //¶þ¼¶Ö¸Õë
&arr; //µÃµ½µÄÊÇÖ¸ÏòµÚһάΪ100µÄÊý×éµÄÖ¸Õë #include
int main(void) { int **p, *q; int arr[100]; q = arr; p = &q; return 0; }
ÏÂÃæÕâ¸ö³ÌÐòÖ´Ðкó»áÓÐʲô´íÎó»òÕßЧ¹û: #define MAX 255 int main() {
unsigned char A[MAX],i;//i±»¶¨ÒåΪunsigned char for (i=0;i<=MAX;i++) A[i]=i; }
½â´ð£ºËÀÑ»·¼ÓÊý×éÔ½½ç·ÃÎÊ£¨C/C++²»½øÐÐÊý×éÔ½½ç¼ì²é£© MAX=255
Êý×éAµÄϱ귶ΧΪ:0..MAX-1,ÕâÊÇÆäÒ».. Æä¶þ.µ±iÑ»·µ½255ʱ,Ñ»·ÄÚÖ´ÐÐ: A[255]=255;
Õâ¾ä±¾ÉíûÓÐÎÊÌâ..µ«ÊÇ·µ»Øfor (i=0;i<=MAX;i++)Óï¾äʱ,
ÓÉÓÚunsigned charµÄÈ¡Öµ·¶Î§ÔÚ(0..255),i++ÒÔºóiÓÖΪ0ÁË..ÎÞÏÞÑ»·ÏÂÈ¥.
struct name1{ char str; short x; int num; }
struct name2{ char str; int num;
short x; }
sizeof(struct name1)=8,sizeof(struct name2)=12
ÔÚµÚ¶þ¸ö½á¹¹ÖУ¬Îª±£Ö¤num°´Ëĸö×Ö½Ú¶ÔÆ룬charºó±ØÐëÁô³ö3×ֽڵĿռ䣻ͬʱΪ±£Ö¤Õû¸ö½á¹¹µÄ×ÔÈ»¶ÔÆ루ÕâÀïÊÇ4×Ö½Ú¶ÔÆ룩£¬ÔÚxºó»¹Òª²¹Æë2¸ö×Ö½Ú£¬ÕâÑù¾ÍÊÇ12×Ö½Ú¡£
intel£º
A.c ºÍB.cÁ½¸öcÎļþÖÐʹÓÃÁËÁ½¸öÏàͬÃû×ÖµÄstatic±äÁ¿,±àÒëµÄʱºò»á²»»áÓÐÎÊÌâ?ÕâÁ½¸östatic±äÁ¿»á±£´æµ½ÄÄÀջ»¹ÊǶѻòÕßÆäËûµÄ£©?
staticµÄÈ«¾Ö±äÁ¿£¬±íÃ÷Õâ¸ö±äÁ¿½öÔÚ±¾Ä£¿éÖÐÓÐÒâÒ壬²»»áÓ°ÏìÆäËûÄ£¿é¡£ ËûÃǶ¼·ÅÔÚÊý¾ÝÇø£¬µ«ÊDZàÒëÆ÷¶ÔËûÃǵÄÃüÃûÊDz»Í¬µÄ¡£
Èç¹ûҪʹ±äÁ¿ÔÚÆäËûÄ£¿éÒ²ÓÐÒâÒåµÄ»°£¬ÐèҪʹÓÃextern¹Ø¼ü×Ö¡£
struct s1 {
int i: 8; int j: 4; int a: 3; double b; };
struct s2