C语言中强制类型转化-c强制类型转换语句

为何要在这里提强制类型转换呢,测试代码可以看到编译器会报很多警告,意思是告诉程序员数据类型不匹配,虽然并不影响程序的正确运行,但是很多警告总会让人感到难受。因此为了告诉编译器代码这里没有问题,程序员可以使用强制类型转换来将一段内存转换为需要的数据类型,例如下面有一个数组a,现在将其强制转换为一个结构体类型stu:

复制#include typedef struct STUDENT { int name; int gender; }stu; int a[100]={10,20,30,40,50}; int main(int argc, char **argv) { stu *student; student=(stu*)a; printf(“student->name=%d\n”,student->name); printf(“student->gender=%d\n”,student->gender); return 0; } C语言中强制类型转化-c强制类型转换语句

可以看到a[100]被强制转换为stu结构体类型,当然不使用强制类型转换也是可以的,只是编译器会报警报。

C语言中强制类型转化-c强制类型转换语句

上图为程序的示意图,图中数组复制a[100]的前12个字节被强制转换为了一个struct stu类型,上面仅对数组进行了说明,其它数据类型也是一样的,本质上都是一段内存空间。

审核编辑:汤梓红

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:C语言中强制类型转化-c强制类型转换语句 https://www.yhzz.com.cn/a/7806.html

上一篇 2023-04-18
下一篇 2023-04-18

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。