C语言知识点分章总结
C语言程序与设计 知识点
2011年12月07日
第5章 数据类型与输入输出
标识符:(1)只能由字母、数字和下划线构成;(2)第一个字符必须是字母或者下划线;(3)长度只有31个字符有效;(4)不能包含空格;(5)不能使用关键字。
变量三个要素为:类型、名字和值;同一语句中不能混合定义不同类型的变量。
常量:直接常量和符号常量
十进制常量:[ + | - ] Digits [ l | L ]
八进制常量:OctalDigits [ L | l ]
十六进制常量:( 0x | 0X ) HexDigits [ L | l ]
补码:负整型数在内存中的存放形式;将该数的绝对值的二进制形式,按位取反再加1。
浮点数:-2.34, 3.1416f, 29.00, .23, 0.23L, 1.23E10, 0.23E-4, 45.e+23, -23.68E12
输出操作 :调用库函数printf时用“%f”格式输出
错误:float f1, f2, f3; printf("f1 = %d, f2 = %d, f3 = %d\n", f1, f2,f3);
浮点数,默认输出小数点后6位数字
输入操作:调用库函数scanf时用“%f”和“%lf”分别对foat型和double型数据进行输入。
输出操作:调用库函数printf时用“%f”对foat型和double型数据进行输出; % lf为long double类型输出;%e或E—按科学计数法的形式输出。
应避免将一个很大的数和一个很小的数直接相加减,否则就会丢失小的数
字符常量:用单引号括起,只能是单个字符,还包括转义字符,一种特殊的字符常量,以反斜线"\"开头,后跟一个或几个字符。
字符型数据和整型数据之间可以通用,表示方式和操作与整数相同, 但要注意范围。
整数的格式化输出:%[对齐方式][输出最小宽度]整数类型
整数类型的输出: %d 、%o、 %x/%X或%ld
实数的格式化输出:%[输出最小宽度] [.精度]实数类型;一般默认数据右对齐,若输出宽度前加负号,则设置为左对齐。
scanf格式输入函数,注意三种输入函数的输入方式区别:scanf ( "%d %c %f ",&i,&c , &f ); scanf (“%d,%c ,%f ”, &i,&c , &f ); scanf( ”i=%d b=%c c=%f”, &i,&c,&f);
scanf中要求给出变量地址,若在格式控制字符串后直接给出变量名,则会在运行时出错。
float类型的数据可以用%f进行输入或输入操作。对于double型的实数,必须用%lf的格式输入数据。
编译器在遇到分隔符或非法数据时即认为输入操作结束。
格式字符可以用空格分隔,但最好不用回车作为分隔符,除非后面还有数据要输入。
注意在循环函数中使用scanf()中,用%c输入字符型数据时的特殊性。
第6章 运算符与表达式
表达式是由运算符和运算数组成的式子
表达式根据某些约定、求值次序、结合、优先级规则来进行计算.
求值次序:表达式中各操作数的求值次序视编译器不同不同。
“/”操作符对与不同的数据类型进行不同的操作
%只能对整型数进行操作,不允许对浮点数操作
字符类型的数据象整型数据一样,可以进行相关运算。
变量赋值与初始化的计算机操作不同。
左值:常量和算术表达式不能为左值.
右值:左值表达式可以作为右值表达式。
牢记运算符的“优先级”和“结合性”
隐式转换:(1)“就高不就低”的原则;(2)当赋值运算的左值表达值与右值表达式类型不同时,将右值转换成左值的类型;(3)数据可能丢失精度。
显式类型转换:– 强制转换运算符(类型名)(表达式),(类型名)变量
自增i++:先使用变量,然后对变量增值;自左向右将运算符结合,如a+++b 等同(a++)+b。
自增++i:先对变量增值,再使用变量;从右至左结合,如+++b等同+(++b)。
i++和++i在单独使用等效。
自增操作不能为常量或算术表达式
int i=1, b; b=(i++) + (i++) + (i++), 问b=?;printf(“%d”, (i++) + (i++) + (i++));输出是什么?
(++i)+ (++i)+ (++i) 编译器不同,结果不同。
注意关系表达式a <= x < b产生的误解;正确的是a <= x && x < b
在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。(1) a && b && c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。(2)