C语言——查漏补缺

1,区余运算符两边都应该是整形,比如:7.5%2是没有意义的。

2,a + b,假设a和b都是float类型,则运算时,系统会自动把a和b都扩充成8个字节的double性进行运算,产生结果后邮把结果转换回float型。

3,

  1 #include<stdio.h>
  2 int main()
  3 {
  4     int i=3;
  5     printf("%d,%d,%d\n",i,i++,i++);
  6     return 0;
  7 }


输出结果:5,4,3

因为printf中i,i++,i++的求值比较特殊,他是从右往左求值的。

4,赋值运算符

字符型数据付给整型数据,由于字符型为1个字节,而整型为4个字节故将字符的ASCII码值放在整型量的最低的8位中,高位的3个字节为0.

整型赋给字符型,只把低8位赋给字符变量。

5,逗号运算符和逗号表达式

求值过程为从左到右分别求出这n个表达式的值,逗号表达式的运算优先级是最低的,赋值运算符的优先及高于它,请判断下面的结果:

int a=5;
a = (a=3*5, a*4),a+5;

结果:60。

int a=5;
a = ((a=3*5,a*4),a+5);

结果:20

6,格式化输出

e:以科学表示法输出浮点数。

g:输出%f与%e中占用位数较短的一个。

  1 #include<stdio.h>
  2 int main()
  3 {
  4     char c='a';
  5     int i = 1234;
  6     float f = 12.123456;
  7     double d = 12.5;
  8 
  9     printf("%d %o %x\n",i,i,i);
 10     printf("%c %d\n",c,c);
 11     printf("%s\n","hello world");
 12     printf("%f %e %g\n",f,f,f);
 13 
 14 
 15     printf("=========================\n");
 16     printf("%5c%5d%10.5f%10.5f\n",c,i,f,d);
 17     printf("=========================\n");
 18     printf("%-5c%-5d%-10.5f%-10.5f\n",c,i,f,d);
 19 }
~                                                     


结果:

1234 2322 4d2
a 97
hello world
12.123456 1.212346e+01 12.1235
=========================
    a 1234  12.12346  12.50000
=========================
a    1234 12.12346  12.50000  



 

posted @ 2012-10-20 09:33  orangef  阅读(161)  评论(0编辑  收藏  举报