0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中强制类型转化

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-09-09 08:58 次阅读

为何要在这里提强制类型转换呢,测试代码可以看到编译器会报很多警告,意思是告诉程序员数据类型不匹配,虽然并不影响程序的正确运行,但是很多警告总会让人感到难受。因此为了告诉编译器代码这里没有问题,程序员可以使用强制类型转换来将一段内存转换为需要的数据类型,例如下面有一个数组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;
}
poYBAGMZ4cKALyshAABCAJTB-Cs026.png

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

pYYBAGMZ4dmAEKgKAADJefap1-w649.png

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

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136723
  • 编译器
    +关注

    关注

    1

    文章

    1624

    浏览量

    49113
收藏 人收藏

    评论

    相关推荐

    C语言中void指针的基本认识及典型应用

    C语言中,*类型就是指针类型,比如 int *p,double *q,虽然是不一样的指针,但是大小却一样sizeof(p) == sizeof(q),因为它们都是同一种
    发表于 02-01 09:26 1097次阅读

    C语言中的基本数据类型

    C语言是非常重要的一门程序设计语言,学好C语言再去学习其他编程语言将变得很轻松,因为大部分
    发表于 04-26 17:33 2008次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>的基本数据<b class='flag-5'>类型</b>

    Go语言中的整数类型

    在 Go 语言中,整型可以细分成两个种类十个类型
    发表于 07-20 15:25 914次阅读

    C语言中基本数据类型、变量和常量的使用

    C语言中基本数据类型、变量和常量的使用
    发表于 08-18 16:42 2736次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>基本数据<b class='flag-5'>类型</b>、变量和常量的使用

    labview 强制类型转化

    图片里面的两个强制类型转化作用是啥,还有,接的类型,一个是4,一个是一个数组是啥意思,求解释
    发表于 05-17 09:32

    C语言中定义int a,a是什么类型

    C语言中定义int a[10][10],a是什么类型? 我的理解是a是指向二维整型数组的指针 ,具体这个怎么用?一般都处理什么样的数据呢?​
    发表于 05-25 07:10

    C语言中int型强制类型转换成short型的溢出问题怎么解决?

    如何判断STM32编码器模式中电机的正反转?C语言中int型强制类型转换成short型的溢出问题怎么解决?
    发表于 10-19 06:59

    请问在C语言中如何使用bool类型

    C语言中如何使用bool类型
    发表于 10-22 07:20

    单片机C语言中常用到的关键字及数据类型

    单片机C语言中常用到的关键字及数据类型
    发表于 11-03 10:57 13次下载

    枚举是C语言中的一种基本数据类型

    C语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,所以按照 C 语言
    的头像 发表于 09-25 15:45 8653次阅读
    枚举是<b class='flag-5'>C</b><b class='flag-5'>语言中</b>的一种基本数据<b class='flag-5'>类型</b>

    C语言中的不完整类型是什么

    C语言中存在这样一种类型,名叫不完整类型(Incomplete types),虽然我们可能不太理解,或许也没有仔细研究过,但是在实际的编程中,我们却已经用到过很多次了。
    的头像 发表于 02-21 10:03 1302次阅读

    简述C语言中指针重点

    C语言中一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址,其概念与以前类似,只是返回的值的类型是指针类型
    的头像 发表于 03-10 15:28 601次阅读

    scanf在C语言中的作用

    scanf在C语言中的作用  scanf是C语言中的输入函数,用于从标准输入设备(如键盘)读取数据,并将其存储到变量中。它是C
    的头像 发表于 11-23 14:13 1406次阅读

    c语言中数组怎么定义

    C语言中,数组是一种用来存储相同类型元素的数据结构。它可以存储多个元素,并通过一个共同的名称来引用这些元素。数组是一种很重要的数据结构,可以用于解决很多实际的问题。 在C
    的头像 发表于 11-24 10:11 3068次阅读

    c语言中decimal的含义

    C语言中的“decimal”是一种数据类型,用于表示十进制数字。在C语言中,常用的数据类型有整数
    的头像 发表于 11-30 10:57 2432次阅读