gpt4 book ai didi

c++ - 当我将 true 赋值给一个 int 变量时,为什么编译器不报错?

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:30 25 4
gpt4 key购买 nike

我有一个看起来像这样的程序:

#include <stdio.h>
#include <stdlib.h>
#include "string.h"
#include <sstream>

class A{
int num1;
char char1;

public:
void set_print_num(int);
};

void A::set_print_num(int n){
num1 = true;
printf("this is %d", num1);
}

int main(void){
A a_inst;
a_inst.set_print_num(5);
}

即使我将 num1 设置为 true 而不是 int,我也没有收到编译器错误。有什么问题吗?

最佳答案

您的所有变量都保留其类型。但是,一种类型的值可以转换为另一种类型。

truebool 类型的值,可隐式转换为 int 类型,值为 false 变为 0 并且值 true 变为 1

C++ 中有许多隐式转换,其中大部分允许数值类型之间的转换,并且可以编写用户定义的转换,以允许与用户定义类型之间的隐式转换。

关于c++ - 当我将 true 赋值给一个 int 变量时,为什么编译器不报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com