C程序设计(第2版,谭浩强)总结(一)

花了几天时间看完了从图书馆借来的版本十分老旧的谭浩强的c程序设计,总结一下自己初学不是太会注意到的地方。

1.一个字符串存放在变量中,必须使用字符数组。

2.运算时,不同类型的数据要先转换成同一类型
转换规则如下:
C程序设计(第2版,谭浩强)总结(一)_第1张图片
3.自增运算符(++)和自减运算符(–),只能用于变量,不能用于常量或表达式,如5++或(a+b)++都是不合法的。
++和–都是“自右向左”结合的,如-i++,为-(i++),如果有pirintf("%d",-i++),则先取出i的值3,输出-3,然后i的值增加为4

4.逗号表达式:对于b = ( a = 3*5, a*4),a = 3*5 = 15,然后求解a*4得60,a的值为15,b为逗号表达式的值60。

5.pirintf(格式控制,输出表列)
格式字符:
1)d格式字符,用来输出十进制数。有以下形式:
①%d:按整型数据的实际长度输出;
②%md:m为指定的输出字段的宽度,如果位数小于m,则左端补空格,若大于m,则按实际位数输出;
③%ld:输出长整型数据。
2)o格式符,以八进制形式输出整型输出的数值不带符号。也有%mo,%lo的用法。
3)x格式符,以十六进制形式输出整型同样输出的数值不带符号。也有%mx,%lx的用法。
4)u格式符,以十进制形式输出unsigned型数据
5)c格式符,用来输出一个字符。也可以指定输出字数宽度%mc。
6)s格式符,用来输出一个字符串,有以下形式:
①%s②%ms③%-ms:如果长度小于m,则在m列范围内,字符串向左靠,右补空格
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格;
⑤%-m.ns:m,n的含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则m自动取n值,保证n个字符正常输出
7)f格式符,用来输出实数(包括单、双精度),以小数形式输出,有以下形式:
①%f:单精度的有效位数一般为7位,双精度的有效位数一般为16位;
②%m.nf:指定输出的数据位数一共占m列,其中有n位小数;
③%-m.nf:与上式基本相同,数值向左靠
8)e格式符,以指数形式输出实数,有以下形式:
①%e:有的C编译系统自动给出6位小数,指数部分占5位,其中“e”占1位,指数符号占1位,指数占3位。数值按规范化指数形式输出(即小数点前必须有而且只有1位非零数字);
②%m.ne、%-m.ne:“-”字符含义与前面相同,n指拟输出的数据的小数部分的小数位数。
9)g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),并且不输出毫无意义的零。

6.scanf(格式控制,地址表列)
注意:1)如果在%后面有一个“*”附加说明符,表示跳过它指定的列数。例如,
scanf("%2d %*3d %2d", &a, &b);如果输入一下信息: 12 345 67(enter)
则会将12赋给a,%*3d表示读入3位整数但不赋值给任何变量。然后再读入2位整数67赋值给b。
2)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。
3)输入双精度实型数据时,需要用%lf。

你可能感兴趣的:(C语言)