c语言 c=(A *) b什么意思?A是一个自定义的复合的结构体类型,c和b是一个结构体变量
发布网友
发布时间:2023-01-10 17:37
我来回答
共2个回答
热心网友
时间:2023-10-26 01:57
从问题来看,c,b不是结构体变量,而是结构体指针变量。
c=(A *) b即是将结构体指针变量b强制转换为结构体A类型的指针变量,即A*。
(类型) 是C语言的强制类型转换操作,比如:
int x = 23, y = 38;
double sum = (double)x / y; // 将x的类型强制转换为double型
热心网友
时间:2023-10-26 01:57
就是强制转换。如结构体struct A{char c;char d[3];}
struct B{char e[2]={'1','2'};char f[2]={'3','4'};}
//都要用malloc分配空间,就不写了。
struct B *B1;
struct A *A1;
那么A1 = (A*)B1;
使得结构体B1中的数据按内存大小赋值给A1,即c=1,d={'2','3','4'}
这种结构体强制类型转换在TCP/IP的协议间的兼容中用的比较多,结构体的大小要相等。