arr[lpos]=a[x]&1
pos++
if(pos==5)
break
}循环(a[x]>>=1)
我就不补全了,大概这个意思
c存在第三个字节
sizeof结构体,这个要看结构体内变量是如何定义的,结构体存放数据有个对齐原则,找到占用最大字节的变量,然后都向它对齐,比如bool和char类型占用一个字节,short占两个字节,int,float为4个字节,double为八个字节。
定义的顺序不同,sizeof的结果不同。我给你举个例子。
struct A{int a
char b
char c
}
sizeof(A)应该为4+1+1,但是需要对齐,所以这个值就是 8
图1
这个是struct A的变量存储
struct B{char a
int b
char c
}
sizeof(B) 这个值就是12
图2
这个是struct B的变量存储