3:sizeof既可以作用于一种类型名,也可以作用于该类型的对象。
struct TS
{
int ma;
double mb;
char mc;
};
int a =2;
len = sizeof(a);//作用于对象
cout<<len<<endl;//输出4
len = sizeof(TS );//作用于类型名
cout<<len<<endl;//输出24
TS * pts;
len = sizeof(ts);//作用于对象
cout<<len<<endl;//输出24int * p1; len = sizeof(*p1);//作用于指针的解引用 cout<<len<<endl;//输出4 len = sizeof(*pts );//作用于指针的解引用 cout<<len<<endl;//输出24 len = sizeof(pts );//作用于指针 cout<<len<<endl;//输出4
int array[2]= {1,2};
len = sizeof(array);//作用于数组
cout<<len<<endl;//输出8#include<iostream>
using namespace std;
class base {
public:
virtual ~base(){}
};
class de :public base
{
};
int main()
{
int a = 5;
int *ip = &a;
cout<<typeid(*ip).name()<<endl;//输出int
base ba;
base * pb = new de;
if(typeid(*pb)==typeid(ba))
{
cout<<"两者类型相同!"<<endl;
}
else
{
cout<<"两者类型不相同!"<<endl;
}
//输出"两者类型不相同!"
return 0;
}
For Example:
int a = 3;
//测试switch内部定义变量的规则
switch (a)
{ /*
*只可以在最后一个case标号或default之后定义变量
*/
//int b = 1;//编译出错
case 1:
//int m = 1;//编译出错
break;
case 2:
{
int n = 3;//编译通过
}
break;
case 3:
int c =3;//编译通过
cout<<"ss"<<endl;//输出ss
break;
}
cout<<"一"<<endl; goto Lable; int m = 10; //编译成功! Lable: cout<<"二"<<endl; cout<<"一"<<endl; goto Lable; int m = 10; //编译失败! Lable: cout<<"二"<<endl; cout<<m<<endl;//出错:变量m未定义!
原文:http://blog.csdn.net/yyc1023/article/details/20162059