学习C++ – C++联合体 联合体是一种数据格式,可以保存不同的数据类型,但一次只能存在一种类型。 联合体可以持有一个int或一个long或double。 语法与结构体类似。 例如,考虑以下声明: union my_union { int int_val; long long_val; double double_val; }; 您可以使用my_union变量来保持int,long或double,只要在不同的时间执行此操作即可: my_union y; y.int_val = 15; // store an int cout << y.int_val; y.double_val = 1.8; // store a double, int value is lost cout << y.double_val;
学习C++ – C++类型转换 当您为另一种算术类型的变量赋值一种算术类型的值时,C ++将转换值。 赋值给bool变量的零值将转换为false,并将非零值转换为true。 将浮点数转换为整数会导致截断数字。 当您在表达式中组合混合类型时,C ++会转换值。 当函数传递参数时,C ++会转换值。 例子 以下代码显示初始化时的类型更改 #include <iostream> using namespace std; int main() { cout.setf(ios_base::fixed, ios_base::floatfield); float tree = 3; // int converted to float int guess(3.9); // double converted to int int debt = 7.2E12; // result not defined in C++ cout << "tree = " << tree << endl; cout << "guess = " << guess << endl; cout << "debt = " << debt << endl; return 0; } 上面的代码生成以下结果。 类型转换(Type Casts) C++可以通过类型转换显式强制类型转换。 要将int值转换为long类型,可以使用以下任一表达式: (long) my_value // returns a type long conversion of my_value long (my_value) // returns a type long conversion of my_value 类型转换不会更改my_value变量本身。 它创建一个新的指示类型的值,然后您可以在表达式中使用,如下所示: cout << int("Q"); // displays the integer code for "Q" 更一般地,您可以执行以下操作: (typeName) value //...
学习C++ – C++浮点数 C++浮点类型表示具有小数部分的数字。 它们提供了更大的价值范围。 字面量 C++有两种写入浮点数的方式。 第一个是使用标准的小数点符号: 12.34 // floating-point 987654.12 // floating-point 0.12345 // floating-point 8.0 // still floating-point 第二种方法称为E符号,它看起来像这样:3.45E6。 这意味着值3.45乘以1,000,000。 E6表示10到6的幂,即1后跟6个零。 因此3.45E6是3,450,000。 6称为指数,3.45称为尾数。 这里有更多的例子: 1.12e+8 // can use E or e, + is optional 1.12E-4 // exponent can be negative 7E5 // same as 7.0E+05 -12.12e13 // can have + or - sign in front 例子 下面的代码检查float和double类型。 #include <iostream> using namespace std; int main() { cout.setf(ios_base::fixed, ios_base::floatfield); // fixed-point float tub = 10.0 / 3.0; // good to about 6 places double mint = 10.0 / 3.0; // good to about 15 places const float million = 1.0e6; cout << "tub = " << tub; cout << ", a million tubs = " << million * tub;...