今天笔试C++遇到的几道题,感觉还是有些难度的
1 int main() 2 { 3 int a[4][4] = { 4 {1,2,3,4}, 5 {50,60,70,80}, 6 {900,1000,1100,1200}, 7 { 13000, 14000, 15000, 16000 } 8 }; 9 10 int(*p1)[4] = a; 11 int(*p2)[4] = &a[0]; 12 int *p3 = &a[0][0]; 13 14 printf("%d %d %d %d", *(*(a+1)-1),*(*(p1+3)-2)+1,*(*(p2-1)+18)+5,*(p3+sizeof(p1)-3)); 15 16 system("pause"); 17 return 0; 18 }
答案是4 1101 15005 2
前两个比较好理解。对于第三个,p2-1相当于跳了一个一维数组(元素为随机值),再加18个元素就加到了15000位。
对于第四个,sizeof(p1)为4,首位元素再加1位。
时间: 2024-10-14 18:42:48