- 论坛徽章:
- 0
|
关于数组的退化请见:
http://bbs.chinaunix.net/viewthread.php?tid=1031622
int a[][2] = {1,2,3,4};
(1) cout << a << endl;
a会退化成&a[0], 类型为pointer to int[2]
(2) cout << *a << endl;
a会退化成&a[0] pointer to int[2]
*a的类型为int[2]
最后,*a会退化成&(*a)[0],即&a[0][0]
(3) cout << *a+1 << endl;
接上面,*a为&a[0][0],则*a+1则为&a[0][1]
(4) cout << a+1 << endl;
a会退化成&a[0], 则a+1即为&a[1]
(5) cout << a[1]<< endl;
a[1]类型为int[2],它会退化为&a[1][0]
(6) cout << *(a+1)<< endl;
a会退化成&a[0], 则a+1即为&a[1]
*(a+1)则为a[1],其类型为int[2]
因此,它又会退化为&a[1][0]
(7) cout << *(a[1])<< endl;
a[1]类型为int[2],它会退化为&a[1][0]
*a[1]即为a[1][0]
[ 本帖最后由 ypxing 于 2008-5-23 16:45 编辑 ] |
|