现在的位置: 首页 > 综合 > 正文

这些你注意了吗?

2013年01月16日 ⁄ 综合 ⁄ 共 1252字 ⁄ 字号 评论关闭
例1
short a = 30000, b = 30000;
printf("sizeof(a) = %d/n", sizeof(a));
printf("sizeof(b) = %d/n", sizeof(b));
printf("sizeof(~a) = %d/n", sizeof(~a));
printf("sizeof(a + b) = %d/n", sizeof(a + b));
printf("a + b = %d/n", a + b);
signed char c = 127;
printf("c+1 = %d/n", c+1);
printf("sizeof(c+1) = %d/n", sizeof(c+1));

Result:
sizeof(a) = 2
sizeof(b) = 2
sizeof(~a) = 4     
sizeof(a + b) = 4   
a + b = 60000
c+1 = 128
sizeof(c+1) = 4     
例2
unsigned short a = 1234;
unsigned char b;
b = a;
printf("b = %d/n", b);
printf("a %% (255 + 1) = %d/n", a % 256);
Result:
b = 210
a % (255 + 1) = 210
例3
short a = 1234;
unsigned char b;
b = a;
printf("b = %d/n", b);
printf("a %% (255 + 1) = %d/n", a % 256);
Result:
b = 210
a % (255 + 1) = 210
 
例4
short a = -1234;
unsigned short b;
b = a;
printf("b = %d/n", b);
printf("a + (65535 + 1) = %d/n", a + 65536);
Result:
b = 64302
a + (65535 + 1) = 64302
例5
double x;
int a = 10, b = 3;
x = a / b;                              /* x = 3.0 */
x = (double) a / (double) b;            /* x = 3.333333 */
x = (double) a / b;                     /* x = 3.333333 */
x = (double) (a / b);                   /* x = 3.0 */
例6
double x;
int a = 10, b = 3, c = 5, d = 2;
x = a / b + c / d;                      /* x = 5.0 */
x = (double) a / b + c / d;             /* x = 5.333333 */
x = (double) a / b + (double) c / d;    /* x = 5.833333 */
 

 

 

 

 

http://www9.plala.or.jp/sgwr-t/detail/TypeConversion.html

http://www.chmhome.com/knowledge/c-c++/20071007/111661.html
http://blog.csdn.net/zhongrg/archive/2007/11/11/1879157.aspx

抱歉!评论已关闭.