在l_array中输入3个数值,通过指针将其byte进行改变存入char数组,然后输出,
程序无法进行下去,不知道可以不可以这样写,求教!
程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
long l_array[3];
char c_array[24];
int main(void)
{ char *ptr;
long *ltr;
int i,j;
for(i=0;i<3;i++)
scanf("%d",&l_array[i]);
for(i=0;i<3;i++)
{ ltr=&l_array[i];
ptr = (char *)(ltr);
for(j=0;j<sizeof(long);ptr++,j++)
strcat (c_array,*ptr);
}
printf("%s",c_array);
return 0;
}
可是这样打出来的不应该是24位的一个数组吗,为什么只有三个图?
追答因为你输入的数太小,高位都是0,而且从整数到char的转换会有很多不可打印的字符
本回答被提问者采纳