我遇到了以下问题:
int i[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
int *p;
Run Code Online (Sandbox Code Playgroud)
i [0]从具有32位整数的Big Endian机器上的地址1,242开始.
在以下陈述之后,p等于什么?
p = &i[2] + 4;
i[0] = *(p + 5) - 8;
Run Code Online (Sandbox Code Playgroud)
结果:
p = 1242 + 4 * (2 + 4) = 1,266
i[0] = i[(6 + 5)] – 8 = 3
Run Code Online (Sandbox Code Playgroud)
如果这是在小E机器上,我的解决方案会改变吗?
我试图找到两组10位数的联合,我传递三个int数组:第一个,第二个和comp(这将保存联合集).
到目前为止,我已将第一个和第二个添加到一个数组中.我正在考虑在comp []中找到匹配的索引,然后通过删除它们进行过滤.我认为有一种更简单的方法.任何人都可以给我一个提示吗?
基本上我在服用
first[] = [1,2,3,4,5,6,7,8,9,10];
second[] = [1,2,3,4,11,12,13,14,15,16];
Run Code Online (Sandbox Code Playgroud)
我想回来
comp[] = [5,6,7,8,9,10,11,12,13,14,15,16];
Run Code Online (Sandbox Code Playgroud)
这些数字不一定是有序的.
int compound(int first[],int second[],int comp[]){
int i=0;
int indicies[20];
for(int j = 0; j<SIZE; j++){
comp[i]=first[j];
i++;
}
for(int k = 0; k<SIZE; k++){
comp[i]=second[k];
i++;
}
int z=0;
for(int l = 0; l<SIZE*2; l++){
for(int m = 0; m<SIZE*2; m++){
if(comp[l]==comp[m]){
indicies[z]=m;
z++;
}}}
return 0;
}
Run Code Online (Sandbox Code Playgroud)