- 论坛徽章:
- 0
|
建立一个函数,该函数接受一个指向double类型数组的指针和一个表明该数组大小的值。该函数应该输出数组中的每个元素值。现在建立一个double类型的数组,且初始化每个元素的值为0,然后使用你的函数输出该数组。接着使用reinterpret_cast关键字把数组的起始地址转化为unsigned char*,把每个元素值设置为1(提示:必须用sizeof运算符计算一个double类型变量包含的字节数)。现在使用你的数组输出函数输出结果。
代码:
#include<iostream>
using namespace std;
typedef unsigned char unchar;
int main(){
void setdouble(double*);
void display(double*,int);
double d_array[10]={0};
display(d_array,10);
for(double* d_i=d_array;d_i<d_array+10;d_i++){
setdouble(d_i);
}
cout<<endl;
display(d_array,10);
system("pause");
return 0;
}
void display(double* d_arr,int size){
for(int i=0;i<size;i++){
cout<<d_arr<<endl;
}
}
void setdouble(double* d_ptr){
unchar* uc_ptr=
reinterpret_cast<unchar*>(d_ptr);
short highbit=sizeof(double)-1;
uc_ptr[highbit]|=7;
uc_ptr[highbit-1]|=240;
for(int i=highbit-2;i>=0;i--){
uc_ptr=0;
}
}
[ 本帖最后由 parcel 于 2008-2-13 09:04 编辑 ] |
|