struct函数 隐式类型转换(实例)

简介: struct函数 隐式类型转换(实例)
#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>
//struct Name//struct 自定义函数
//{
//    char name[20];
//    char id[20];
//    char cord[20];
//};
//int main()
//{
//    struct Name b = { "家辉", "01.02", "家辉儿子" };
//    struct Name* pb = &b;
//    printf("名字:%s\n", (*pb).name);//(*结构体指针).name
//    printf("生日:%s\n", (*pb).id);  //用地址打印struct Name函数
//    printf("生日:%s\n", (*pb).cord);
//    printf("\n");//换行
//    //也可写成
//    printf("名字:%s\n", pb->name);   //结构体指针->成员名
//    printf("生日:%s\n", pb->id);
//    printf("生日:%s\n", pb->cord);
//    printf("\n");
//    //也可写成                       //结构体指针.成员名
//    printf("名字:%s\n", b.name);
//    printf("生日:%s\n", b.id);
//    printf("生日:%s\n", b.cord);
//    return 0;
//}
//隐式类型转换------需要整型提升(short,char型)变为(int型)(分为正数和负数),然后截断,并只留下最后八位
//正数,如char i=8; 为00001000---->00000000000000000000000000001000
//负数,如char i=-8;为10001000---->11111111111111111111111110001000
//无符号整型,高位补0;unsigned i=8;00001000---->00000000000000000000000000001000
//int main()
//{
//    char a = 3;  //00000000000000000000000000000011截断,变为00000011(int)
//    char b = 127;//00000000000000000000000001111111截断,变为01111111(int)
//    char c = a + b;//c为int型a,b相加:01111111+00000011=10000010(第一位为1,负数,所以变为二进制时其他位补1)
//    //10000010变为二进制11111111111111111111111110000010(计算机显示的是补码)
//    //            反码为11111111111111111111111110000001(补码-1)
//    //            原码为10000000000000000000000001111110(反码相反数),为-126
//    printf("%d\n", c);//打印结果为-126
//    return 0;
//}
//int main()
//{
//    char a = 0xb6;//char  short型,小于int型,转变后,不等于原来的值
//    short b = 0xb600;
//    int c = 0xb6000000;
//    if (a == 0xb6)
//    {
//        printf("a\n");
//    }
//    if (b == 0xb600)
//    {
//        printf("b\n");
//    }
//    if (c = 0xb6000000)
//    {
//        printf("c\n");
//    }
//    return 0;
//}
//int main()
//{
//    char a = 0xb6;//char  short型,小于int型,转变后,不等于原来的值
//    short b = 0xb600;
//    int c = 0xb6000000;
//    if (a == 0xb6)
//    {
//        printf("a\n");
//    }
//    if (b == 0xb600)
//    {
//        printf("b\n");
//    }
//    if (c = 0xb6000000)
//    {
//        printf("c\n");
//    }
//    return 0;
//}
int main()
{
    char c = 1;               //%u是打印有个unsigned的数
    printf("%u\n", sizeof(c));//打印结果为1
    printf("%u\n", sizeof(+c));//打印结果为4
    printf("%u\n", sizeof(-c));//打印结果为4
    return 0;
}


相关文章
|
边缘计算 网络协议 网络架构
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
DoIP看这篇就够了,吐血整理
【数据结构】大根堆和小根堆
【数据结构】大根堆和小根堆
429 0
|
存储 缓存 负载均衡
软件体系结构 - 数据分片(2)一致性哈希分片
【4月更文挑战第20天】软件体系结构 - 数据分片(2)一致性哈希分片
450 21
|
SQL 存储 Java
Hive 特殊的数据类型 Array、Map、Struct
在Hive中,`Array`、`Map`和`Struct`是三种特殊的数据类型。`Array`用于存储相同类型的列表,如`select array(1, &quot;1&quot;, 2, 3, 4, 5)`会产生一个整数数组。`Map`是键值对集合,键值类型需一致,如`select map(1, 2, 3, &quot;4&quot;)`会产生一个整数到整数的映射。`Struct`表示结构体,有固定数量和类型的字段,如`select struct(1, 2, 3, 4)`创建一个无名结构体。这些类型支持嵌套使用,允许更复杂的结构数据存储。例如,可以创建一个包含用户结构体的数组来存储多用户信息
2144 0
|
机器学习/深度学习 数据采集 人工智能
利用深度学习优化图像分类准确性
【4月更文挑战第3天】 在本文中,我们将探讨如何通过深度学习技术提高图像分类的准确性。随着大数据和计算能力的快速发展,深度学习已成为解决复杂问题的重要工具,特别是在图像识别和分类任务中显示出了卓越的性能。文章首先概述了深度学习在图像分类中的应用背景,随后详细介绍了卷积神经网络(CNN)的基本原理及其在图像分类中的关键作用。接着,我们展示了通过数据增强、网络结构优化和正则化技术等方法来提升模型性能的策略。最后,文中通过实验验证了这些策略在提高分类准确性方面的有效性,并讨论了未来可能的研究方向。
|
算法 计算机视觉
06 OpenCV 阈值处理、自适应处理与ostu方法
CV2中使用阈值的作用是将灰度图像二值化,即将灰度图像的像素值根据一个设定的阈值分成黑白两部分。阈值处理可以用于图像分割、去除噪声、增强图像对比度等多个领域。例如,在物体检测和跟踪中,可以通过对图像进行阈值处理来提取目标区域;在图像增强中,可以使用阈值处理来增强图像的轮廓和细节等。
|
消息中间件 存储 缓存
详解高性能无锁队列的实现-1
详解高性能无锁队列的实现
939 0
|
消息中间件 传感器 缓存
RT-Thread记录(十二、I/O 设备模型之UART设备 — 使用测试)
从 UART 设备开始学会使用 RT-Thread I/O 设备模型 。
728 1
RT-Thread记录(十二、I/O 设备模型之UART设备 — 使用测试)
|
Ubuntu Linux 芯片
Linux移植5.4版本内核:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(5.4版本内核)
Linux移植5.4版本内核:正点原子阿尔法IMX6ULL开发板Linux内核源码移植详细步骤(5.4版本内核)
2252 0