c语言转换07
Posted 周三石
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言转换07相关的知识,希望对你有一定的参考价值。
整 n = 1L; // 表达式 1L 拥有类型 长 ,期待 整
n = 2.1; // 表达式 2.1 拥有类型 双精 ,期待 整
符 *p = 分配(10); // 表达式 分配(10) 拥有类型 空* ,期待 符*
整 加数(整 数, ...);
整 和 = 加数(2, 'c', 真); // 加数 将以三个 整 调用: (2, 99, 1)
1.f + 20000001; // 整 被转换成 浮 ,给出 20000000.00
// 相加后舍入到 浮 ,给出20000000.00
(符)'a' + 1L; // 首先,符 被提升回 整.
// 这是有符号+有符号的情形,等级不同
// 整 被转换成 长 ,结果是 整 长 的 98
2u - 10; // 有符号/无符号,等级相同
// 10 被转换成无符号,无符号数学运算为模 最大正+1
// 对于 32 位 整 ,结果是 正 整 类型的 4294967288 (即 最大正-7 )
0UL - 1LL; // 有符号/无符号相异等级,有符号的等级较大.
// 若 的大小(长) == 的大小(长 长) ,则有符号数不能表示所有无符号数
// 这是最后一种情况:两个操作数都被转换成 正 长 长
// 结果是 正 长 长 类型的 18446744073709551615( 最大正长长 )
双精 复杂 z = 1 + 2*I;
双精 f = 3.0;
z + f; // z 保持原态,f 被转换成 双精 ,结果是 双精 复杂
易失 整 n = 1;
整 x = n; // n 上左值转换读 n 的的值
易失 整* p = &n; // 无左值转换:不读 n 的值
整 a[3], b[3][4];
整* p = a; // 转换成 &a[0]
整 (*q)[4] = b; // 转换成 &b[0]
整 f(整);
整 (*p)(整) = f; // 转换成 &f
(***p)(1); // 重复解引用到 f 和转换回 &f
正8_t (*a)[10]; // 若 正8_t 是对 正 符 的 又
正 符 (*b)[] = a; // 则这些指针类型是兼容的
整 主(空) {
空 f(); // 旧式函数声明
符 x = 'a'; // 整数转换 整 到 符
f(x); // 整数提升 符 回 整
}
空 f(x) 整 x; {} // 函数期待整
极 b1 = 0.5; // b1 == 1 (0.5 转换成 整 会是零)
极 b2 = 2.0*_虚的i; // b2 == 1 (但转换成 整 会是零)
极 b3 = 0.0 + 3.0*I; // b3 == 1 (但转换成 整 会是零)
极 b4 = 0.0/0.0; // b4 == 1 (非数 与零比较不相等)
符 x = 'a'; // 整 -> 符,结果不变
正 符 n = -123456; // 目标是无符号数,结果为 192 (即 -123456+483*256 )
整 符 m = 123456; // 目标是有符号数,结果实现定义
断定(的大小(整) > -1); // 断言失败:
// 运算符 > 要求 -1 到 大小型 的转换,
// 目标为无符号,结果是 最大大小
整 n = 3.14; // n == 3
整 x = 1e10; // 对于 32 位 整 是未定义行为
双精 d = 10; // d = 10.00
浮 f = 20000001; // f = 20000000.00 (文误不准确)
浮 x = 1+(长 长)最大浮; // 未定义行为
双精 d = 0.1; // d = 0.1000000000000000055511151231257827021181583404541015625
浮 f = d; // f = 0.100000001490116119384765625
浮 x = 2*(双精)最大浮; // 未定义
双精 复杂 d = 0.1 + 0.1*I;
浮 复杂 f = d; // f 为 (0.100000001490116119384765625, 0.100000001490116119384765625)
双精 虚的 d = 0.1*_虚的i;
浮 虚的 f = d; // f 为 0.100000001490116119384765625*I
双精 复杂 z = 0.5 + 3*I;
浮 f = z; // 舍去虚部,设置 f 为 0.5
z = f; // 设置 z 为 0.5 + 0*I
双精 虚的 z = 3*I;
极 b = z; // 布尔转换:设置 b 为 真
浮 f = z; // 实虚转换:设置 f 为 0.0
z = 3.14; // 虚实转换:设置 z 为 0*_虚的i
双精 虚的 z = I * (3*I); // 复结果 -3.0+0i 失去实部
// 设置 z 为 0*_虚的i
整* p = 分配(10 * 的大小(整)); // 分配 返回 空*
整 n;
常 整* p = &n; // &n 拥有类型 整*
整* p = 0;
双精* q = 无效;
正 整 n = -1.0; // 未定义行为
以上是关于c语言转换07的主要内容,如果未能解决你的问题,请参考以下文章