C语言——查漏补缺

来源:互联网 发布:ubuntu 修改时间 编辑:程序博客网 时间:2024/04/30 14:47

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 4d2a 97hello world12.123456 1.212346e+01 12.1235=========================    a 1234  12.12346  12.50000=========================a    1234 12.12346  12.50000  



原创粉丝点击