读书人

amp;a 与 amp;a + 一的区别

发布时间: 2013-07-11 15:38:46 作者: rapoo

&a 与 &a + 1的区别

如下题所示:

?

? ? ?int a[11] = {1,2,3,4,5,6,7,8,9,10,11};

? ? ?int *ptr = (int*)(&a +1);

? ? ?cout << *(a+1) << endl;

? ? ?cout << *(ptr - 3) << endl;

?

请解释以上代码的输出结果:

?

? ? 2

? ? 9

?

? 解析:

?

? ? int a[11] = {1,2,3,4,5,6,7,8,9,10,11};

? ? cout << "*a ? ? ? ? = " << *a << endl;

? ? cout << "*(a+1) ? ? = " << *(a+1) << endl;

? ? cout << "&a ? ? ? ? = " << &a << endl;

? ? cout << "&a[0] ? ? ?= " << &a[0] << endl;

? ? cout << "&a[8] ? ? ?= " << &a[8] << endl;

? ? cout << "&a[10] ? ? = " << &a[10] << endl;

? ? cout << "&a + 1 ? ? = " << &a +1 << endl;

? ? int *ptr = (int*)(&a +1);

? ? cout << "ptr ? ? ? ?= " << ptr << endl;

? ? cout << "ptr[-3] ? ?= " << ptr[-3] << endl;

? ? cout << "(ptr-3) ? ?= " << (ptr-3) << endl;

? ? cout << "*(ptr - 3) = " << *(ptr - 3) << endl;

?

?

读书人网 >编程

热点推荐