函数指针以及类型内存大小
笔记 (2018-11-28)
#include <iostream>
using namespace std;
void test1(){cout<<"test1 ";}//函数名test1就是地址
void test2(){cout<<"test2 ";}
void test3(){cout<<"test3 ";}
int main(int argc,int **argv){
int *p1;
int a=3;
p1=&a;
//1字节Byte=8位(bit)(一位代表一个0或者1)
cout<<sizeof(a)<<endl;//int类型所占内存字节数为4
cout<<sizeof(p1)<<endl;//int类型指针的所占内存字节数为4
char *p2;
char ch='g';
p2=&ch;
cout<<sizeof(ch)<<endl;//char类型占内存为1
cout<<sizeof(p2)<<endl;//char类型指针所占内存为4
//char,int,long,long long,float,double, long double类型所占的内存
//分别为1,4,4,8,4,8,16
typedef void (*fp)();
fp p[]={test1,test2,test3};
cout<<sizeof(p)/sizeof(p[0])<<endl;
for(int k=0;k<3;++k) p[k]();
return 0;
}