c++ cstring 转换 char_C语言-强制类型转换

经常使用的东西

强制类型转换这个东西非常频繁的被使用,而且如果用的好的话,会非常的爽,我写个简单的例子。

#include 

执行结果

root@ubuntu:~/project# gcc 2.c && ./a.out
str:Linux is my world
root@ubuntu:~/project# cat 2.c

隐式类型转换

我们写代码的时候,在类型转换的时候,通常在前面加上类型的名字,如果不加的话,不同的类型进行运算,编译器自己去判断如何进行转换,这种方式就是隐式类型转换。

  • 由编译器自己完成,无需用户的任何外部触发器。
  • 通常在表达式中存在多个数据类型时发生。在这种情况下,类型转换(类型提升)发生以避免数据丢失。
  • 变量的所有数据类型都升级为具有最大数据类型的变量的数据类型。
bool - > char - > short int - > int - > unsigned int - > long - > unsigned - > long long - > float - > double - > long double
  • 隐式转换可能会丢失信息,符号可能会丢失,并且可能发生溢出(当long long被隐式转换为float时)。

ecbee576ca437b14821b833358b63ff9.png

举个例子

2fecfb449a208d76ed5f3852d068e9ee.png
#include

结果输出

root@ubuntu:~/project# gcc 3.c && ./a.out
x = 107, z = 108.000000

显式类型转换

此过程也称为类型转换,它是用户定义的。在这里,用户可以键入强制转换结果以使其具有特定的数据类型。

C中的语法:

(类型)表达

举个例子

2fecfb449a208d76ed5f3852d068e9ee.png
#include

结果输出

root@ubuntu:~/project# gcc 4.c && ./a.out
sum = 2

类型转换,还有一些比较神奇的,数组名转成指针,指针转成数组名等,其中还有各种BUG等着你们,各位可以过去看看。

a5eda537e40c0f67a20deedbc4d2bf24.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值