C++查看数据类型

#include <typeinfo>
#include<iostream>
using namespace std;
int main()
{
int a[2][2][2]={{{1,2},{3,4}},{{5,6},{7,8}}};
int (*p)[2][2];
int b=10;
int *p1=&b;

short *(pp[2][3]);

cout<<"s point array "<<typeid(pp).name()<<endl;
cout<<"int point "<<typeid(p1).name()<<endl;
cout<<"int "<<typeid(*(p1)).name()<<endl;
cout<<"int array"<<typeid(a).name()<<endl;
cout<<"array point "<<typeid(p).name()<<endl;
p=a;
cout<<"A2 int array"<<typeid((p[1][1])).name()<<endl;
cout<<"int data"<<(p[1][1][1])<<endl;
return 0;	
	
	
}

s point array A2_A3_Ps
int point Pi
int i
int arrayA2_A2_A2_i
array point PA2_A2_i
A2 int arrayA2_i
int data8

类typeid,可以给出数据类型,官方文档说根据环境不同输出会有差异,分析来看

首先看第一行pp是个指针数组,一个2,3数组,数组每个元素是short指针

第二行p1是个int指针

第三行*p1是int数

第四行a是2,2,2数组,数组每个元素是int数

第五行p是一个指针,类型是2,2维的数组

第六行a赋值给p,p[1][1]取两次内容变成2维的数组

第七行p[1][1][1]取三次内容就是int数

所以最后来看,一个P_A2_A3_Pi,第一个P表明这个变量本身是指针,A2,A3表示是数组维度,第二个P表示数组中每个元素是指针,i表示是int。

猜你喜欢

转载自blog.csdn.net/zhangzhi2ma/article/details/82463203