首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

&a 与 &a + 一的区别

2013-07-11 
&a 与 &a + 1的区别如下题所示:?? ? ?int a[11] {1,2,3,4,5,6,7,8,9,10,11}? ? ?int *ptr (int*)(&a

&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;

?

?

热点排行