第一章
1.C语言程序有且只有一个main函数,总从main函数执行,不论位置如何
2.C语言区分大小写
3.以 ; 作为语句结束标志
4.使用大括号表示程序的结构层次。使用一对大括号表示程序范围。
5.使用适量的空格,空行增加可读性。但,变量名,函数名,保留字不能加入空格
6.关键字之后留一个空格,函数名不留空格
7.标识符:常量,变量,标号,自定义函数的名称
(1)由字母,数字,下划线(_)组成
(2)由字母,下划线开头(建议个数不超过8个字)
(3)大小写字母区分
(4)标识符不能是关键字
第二章
1.常量:不改变的量
(1)整型
八进制:以0开头,取值为0—7,无符号。范围:0-0177777
十六进制:以0x或0X开头,取值为0—9,a—f或A—F。范围:0x0-0xffff
十进制:取值为0—9,分有无符号,长短整型。无符号:0-65535,有符号:-32768—32767
超过上述范围末尾加l或L,无符号可在末尾加u或U。
整型以二进制形式存放,正数补码和原码相同,负数的补码是它绝对值安按位取反再加1。
(2)实型/浮点型
由0-9组成小数和整数部分。指数由十进制数加上阶码e/E,之前必须有数字,且指数为整数
(3)字符型
字符常量:由单引号括起的单个字符
字符串常量:由双引号括起来的字符序列,最后以\0结束
以\加字符,构成转意字符。将转换成另外的含义
\n 回车换行 \r 回车 \" 双引号
\t 横向跳格 \f 走纸换页 \a 鸣铃
\v 竖向跳格 \ \ 反斜杠符 \xhh 十六进制1-2位代表字符
\b 退格 \' 单引号 \ddd 八进制1-3位代表字符
a.转意字符只能使用小写字母,每个转意字符看作一个字符,若\与之后不构成转意字符,
\将被忽略
b.字符常量的储存是ASCII码值,字符串常量还要储存一个 \0。
符号常量:定义为标识符的常量。用大写字母表示。
2.变量:可以改变的量
(1)整型
a. int、long占4个字节。short占两个字节
b. int、long无符号取值范围:0-4294967295,有符号取值:-2147483648—2147483647
c. short无符号取值范围:-32768—32767,有符号取值为:0-65535
(2)实型
a. 单精度(float)占4个字节,取值范围:-3.4×10∧-38—3.4×10∧38
b. 双精度(double)占8个字节,取值范围:-1.7×10∧-308—1.7×10∧308
c. 长双精度(long double)占8个字节,取值范围同上。
(3)字符型:占一个字节,范围:-128—127。字符在内存的储存是ASCII码(无符号整数)
3.运算符&表达式
a. 赋值运算符(=):右侧可以是常量,变量,表达式。常量只可做右值。一般左值是变量
b. 复合赋值运算符(+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=)
c. 算术运算符(+,-,*,/,%,++,--)左结合性,双目运算符
d. 关系运算符(>,>=,
e. 逻辑运算符(!高于&&高于||)左结合性,双目运算符。真即非0,值为1。假即为0,值为0。
f. 逗号运算符(,)级别最低,左结合性,整个逗号表达式的值为最后一个表达式的值。
g. 三目运算符(?)a?b:c;右结合性,若a为真,则返回b的值,否则返回c的值。
类型转换:
(1)自动转换:int和long运算,int转换为long。float和double运算,float转换为double
char和short运算时,先转换为int。在赋值运算中,右值类型会转换为左值类型。
(2)强制转换:(类型)(表达式)
运算符优先级:(通常为左结合性)
1.() [] →
2.! ~ ++ -- + -(正负)* & (类型转换) sizeof 右结合性 单目运算符
3.* / % 双目运算符
4.+ -(加减)双目运算符
5.<<>>双目运算符
6.<<= >>= 双目运算符
7.== !=双目运算符
8.& 9.^ 10.| 11.&& 12.|| 都是双目运算符
13.? 三目运算符 右结合性
14.= += -= *= /= &= ^= |= <<= >>= 双目运算符 右结合性
15.,(逗号)
第三章 顺序&选择结构
1.语句:由表达式加;组成的式子
复合语句:{}括起来的语句,是单条语句。在此句中声明的标识符只在此复合语句内有效。因此又称块级声明
在赋值语句中可以连续赋值,但在变量声明中需分别赋值。
2.字符输入输出
a. putchar(字符):显示输出一个字符
b. getchar(字符):从终端输入一个字符
c. getche():从终端输入一个字符,然后运行下一句
d. getch():从终端输入一个字符,但不显示,然后运行下一句
以上包含在stdio.h的头文件
3.格式输入输出
输出:printf("格式控制",输出列表里);
十进制:%d 实际宽度%md 位数小于m,左补空格,大于输出实际位数 %ld 长整型
八进制:%o %mo %lo 十六进制:%x %mx %lx 同上%u 十进制无符号整型 %c输出字符
字符:%s实际输出 %ms 位数小于m左补空格,大于输出实际位数
%-ms位数小于m右补空格 %m.s输出m列,取左端b个字符,输出右侧,左补空格
%-m.s输出m列,取左端n个字符。输出左侧,右补空格。若未指定m或s>m,m自动等于s。
实型:%f 整数全部输出,小数部分输出6位 %m.nf占m列,有n位。长度小于m,左补空格
%-m.nf同上,右补空格
指数:%e 全部输出 %m.ne %-m.ne 同上 %g 根据数据大小,自动选择f或e格式
输入:scanf("格式控制",地址列表);
输入多个数据是可以用空格,换行,tab(制表符),除此之外任何字符间隔均产生错误
%*(字母):表示跳过该输入值。域宽:数据宽度,正整数。多余的部分将被截去。
scanf函数中没有精度控制,一般变量 & 不可少