看下面一段代码
int a[]={1,2,3,4}; int *ptr=(int*)(&a+1); cout <<*(ptr-1)<<endl;
输出为4,这里&a是 int[4]*类型的,所以+1相当于地址加sizeof(int[4]),
总结,对于指针T* p,加1相等于地址加sizeof(T),所以关键是看好T的类型。
时间: 2024-11-07 23:50:32
看下面一段代码
int a[]={1,2,3,4}; int *ptr=(int*)(&a+1); cout <<*(ptr-1)<<endl;
输出为4,这里&a是 int[4]*类型的,所以+1相当于地址加sizeof(int[4]),
总结,对于指针T* p,加1相等于地址加sizeof(T),所以关键是看好T的类型。