amazzzzzing

导航

类型转换

类型转换

一些问题

表达式计算并传参时的类型转换问题

例子如下:

#include <stdio.h>
#include <stdint.h>

int main()
{
    uint8_t a = 254;
    uint8_t b = 2;
    uint32_t c = a + b;

    printf("c=%d\n", (int)c);
    return 0;
}

输出的结果为:

$ ./a.out
c=256

隐式类型转换

https://en.cppreference.com/w/cpp/language/implicit_conversion

在某个接受T2类型的场景中,如果使用了一个或多个T1的类型,就会执行隐式转换,例如:

  • 函数传参(实参T1,形参T2)
  • 仿函数传参
  • new
  • 函数返回值
  • switch语句(T2为内置类型)
  • if语句(T2是bool)

posted on 2023-07-10 12:11  amazzzzzing  阅读(7)  评论(0)    收藏  举报