标签:面试题 c iostream namespace sizeof
1)宏定义实现:
#define MySizeof(Value) (char*)(&Value + 1) - (char*)&Value
(char*)&Value返回Value的地址的第一个字节, (char*)(&Value + 1)返回的是Value的地址的下一个地址的第一个字节
#include <iostream>
using namespace std;
#define my_sizeof(L_Value) (char* )(&L_Value + 1) - (char* )&L_Value
int main()
{
int i;
double f;
double a[4];
double* q;
cout<<my_sizeof(i)<<endl;
cout<<my_sizeof(f)<<endl;
cout<<my_sizeof(a)<<endl;
cout<<my_sizeof(q)<<endl;
cout<<my_sizeof("aadf")<<endl;
return 0;
}2 )
#include <iostream>
using namespace std;
template <class Any>
int LengofArray(Any* p)
{
return int(p+1) - int(p);
}
int main()
{
int* i;
double* q;
char a[10];
cout<<LengofArray(i)<<endl;
cout<<LengofArray(q)<<endl;
cout<<LengofArray(&a)<<endl;
return 0;
}不用sizeof()函数求当前主机上的一个int占用几个字节
标签:面试题 c iostream namespace sizeof
原文地址:http://blog.csdn.net/u014082714/article/details/44964205