您的位置:首页 > 编程语言 > C语言/C++

C语言——查漏补缺

2012-10-20 09:29 357 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: