当前位置: 首页 > news >正文

关于类型转换

隐式转换

先看个例子

int a {500};
unsigned b {1000};
std::cout<<a-b;

这里的输出结果并不为-500。因为最后输出结果的类型自动转换成了unsigned,unsigned是正整数型

类型转换顺序表(由高到低)

long double

double

float

unsigned long long

long long

unsigned long

long

unsigned int

int

知识扩展*:short、char之间计算不会互相转换,而是转换成int再计算,即使是同类型间计算也会先转换成int再计算

C语言强制转换

语法:(int)(a-b)

缺点:维护时,想要找到这个类型,并不方便,因为如果查找int类型,如果到处都是这个int类型,并不好找

优点:简单快捷,直接,直接转换

C++静态转换

语法:static_cat<int>(a-b)

优点:相对安全,由编译器检测是否能转换

赋值转化

用等于号,赋值时会自动转换

float b{500.00};
int a=b;

这里b会自动转换成int型

思考

为什么这里结果是个很大的整数

#include<iostream>
#include<cassert>
void  main()
{int  a{ 500 };unsigned b{ 1000 };std::cout << (long long )(a-b);system("pause");
}

原因:因为a-b得到的结果首先是个unsigned型的,然后才被转换成了long long型

解决办法:将(long long)(a-b) 改为 (long long)a - (long long)b,这样 a 和 b 就会先被强制转换为 long long 类型

sizeof关键字

语法sizefo(int)

http://www.lryc.cn/news/40403.html

相关文章:

  • 蓝桥杯冲击-02约数篇(必考)
  • 122.(leaflet篇)leaflet地图图片之间存在缝隙
  • 4.类的基本概念
  • 有图解有案例,我终于把 Condition 的原理讲透彻了
  • Linux之找回root密码
  • stack_queue | priority_queue | 仿函数
  • 第十四届蓝桥杯三月真题刷题训练——第 14 天
  • 【Hadoop-yarn-01】大白话讲讲资源调度器YARN,原来这么好理解
  • 技术掉:PDF显示,使用pdf.js
  • 有关pytorch的一些总结
  • 基础IO【Linux】
  • Vue3——自定义封装上传图片样式
  • ChatGLM-6B (介绍以及本地部署)
  • react的基础使用
  • letcode 4.寻找两个正序数组的中位数(官方题解笔记)
  • 【面试题系列】K8S常见面试题
  • 字符函数和字符串函数(上)-C语言详解
  • 全连接神经网络
  • 深度学习目标检测ui界面-交通标志检测识别
  • ubuntu不同版本的源(换源)(镜像源)(lsb_release -c命令,显示当前系统的发行版代号(Codename))
  • linux入门---程序翻译的过程
  • springboot复习(黑马)
  • C++指针详解
  • tauri+vite+vue3开发环境下创建、启动运行和打包发布
  • 安卓进阶系列-系统基础
  • 10 Wifi网络的封装
  • 手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)
  • 开发板与ubantu文件传送
  • 如何成为一名优秀的网络安全工程师?
  • 面试问题之高并发内存池项目