两道笔试题,很有代表性,请高手们帮忙解释一下,先谢谢了
//题一:北京启明星辰笔试题#include<iostream>
using namespace std;
void fun(int b[][3]);
int main()
{
int a[3][3]={ {1,2,3},{4,5,6},{7,8,9} };
fun(a);
cout << a[2][1] << endl; //答案:9
return 0;
}
void fun(int b[][3])
{
++b;
b[1][1]=9;
}
//题二:
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int)a+1);
printf("%x,%x",ptr1[-1],*ptr2);// 5 2000000
return 0;
}