【发布时间】:2020-10-27 20:30:01
【问题描述】:
请向我解释b 指针如何显示最后一个元素。
无论数组有多长,它都会打印出最后一个元素。如果您在cout 中单独使用*b,则会显示数组外的数字。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,10,11};
int *b =(int*) (&a+1);
cout << *(b-1) << endl;
return 0;
}
【问题讨论】:
-
提示:
sizeof(a)是什么? -
顺便说一句,这也是未定义的行为,但我还没有看到编译器不能按预期工作。
标签: c++ arrays pointers implicit-conversion pointer-arithmetic