浅谈- “ 变量中 无符号 与 有符号 的 值转换 ”
在同一个表达式中,若同时出现 无符号变量 与 有符号变量 :
1、都转换为无符号类型:(注:2^32=4294967296)即unsigned int 的最大值
2、然后再运行表达式
实例:
#include <stdio.h>char fun(int x, int y) {char c;unsigned int u_int_x = x;printf("u_int_x=%u,y=%d ==>", u_int_x, y);(u_int_x + y > 10) ? (c = 1) : (c = 0);printf("u_int_x=%u,y=%u ==>", u_int_x, y);printf("u_int_x + y = %u \n", u_int_x+y);return c; }int main(int argv, char** argc) {char t1 = fun(7, 4);char t2 = fun(7, 3);char t3 = fun(7, -7);char t4 = fun(7, -8);unsigned int n = -1;printf("n=%u\n", n);printf("t1=%d\nt2=%d\nt3=%d\nt4=%d\n",t1,t2,t3,t4);return 0; }