#include <iostream>
using namespace std;
int main()
{
int a[5]={1,2,3,4,5};
int *k=(int *)(a+1);
int *p=(int *)(&a+1);
int *q=(int *)((int)a+1);//将a设为整形,则q与a不是按四字节对齐。
//如果改成int *q=(int *)((int)a+4);结果是输出2
printf("%x\n",*k); //2 指向a[0]
printf("%x\n",p[-1]); //5 指向a[5-1]
printf("%x\n",*q); //20000000
return 1;
}
C指针问题
最新推荐文章于 2023-03-07 08:24:36 发布