//如果有错误,麻烦各位指正
int main()
{
int a[5]={1,2,3,4,5}
int *ptr=(int*)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));//输出结果多少? 部分人认为:2,5
}
//在VC7(2003) 控制台下输出为2,XXXXXXX(随机数)
解释不了下边的输出:
// t.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char a[5]={1,2,3,4,5};
int *ptr=(int*)&a;
int *ptrAdd1=(int*)(&a+1);
cout<<(int*)a<<endl;
cout<<&a<<endl;
cout<<ptr<<endl;
cout<<ptrAdd1<<endl;
cout<<(int)*a<<endl;
cout<<(int)*ptr<<endl;(为什么ptr==a),但是 *ptr却输不出任何东西?
//cout<<(int)*(ptrAdd1)<<endl;//这个肯定是随机的
cout<<(int)*(ptrAdd1-1)<<endl;
//cout<<(int)*(int*)(*ptr)<<endl;
while(1);
return 0;
}
0012FED0
0012FED0
0012FED0
0012FED5
1
67305985
84148994