注册 登录
编程论坛 C语言论坛

字节数组不使用循环转换成整数型数组

nmgbtzyf 发布于 2021-03-10 18:23, 1409 次点击
字节数组不使用循环转换成整数型数组
3 回复
#2
吹水佬2021-03-10 20:04
转换指针类型
或用联合体:
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    union data {char s[10]; int a[2];};
    union data d;
    d.a[0] = 1145258561;
    d.a[1] = 1684234849,
    printf("%d, %.4s\n",d.a[0], d.s);
    printf("%d, %.4s\n",d.a[1], &d.s[4]);
    strcpy(d.s, "ABCDabcd");
    printf("%d, %.4s\n",d.a[0], d.s);
    printf("%d, %.4s\n",d.a[1], &d.s[4]);
    return 0;
}
#3
rjsp2021-03-11 13:19
反过来可以,强制类型转化就行了(在严格别名中有个例外,就是类型双关为char兼容类型);
但正向不行,因为违反了严格别名的规定。在标准中只有 memcpy 函数可以消除
#4
nmgbtzyf2021-03-11 21:08
很感谢你的回答,但是我的功底还是学的不到位,联合体一直没有应用过
看了一些资料。  似乎可以达到我想要的效果。  但是还需要具体的测试。   
如果有问题还要麻烦你谢谢!
1