PAGE / NUMPAGES
A1、声明、定义、函数原形、函数定义、函数体
定义(define):创建变量或分配存储单元。
声明(declaration):说明变量的性质,但并不分配存储单元。
函数原形:即函数声明,编译器很容易检测出函数调用中参数数目和类型方面的
错误。
函数定义、函数体:函数声明后,对函数所做的程序块。首先定义,然后是在{ }
中的程序块,即函数体。
记号:标识符(identifier)、关键字(keyword)、常量(constant)、字符串字面值(string)、运算符(operator)、分隔符(punctuator、separator)、
char **argv
argv:pointer to pointer to char. argv是指向字符串指针的指针。
int (*daytab)[13]
daytab:pointer to arry[13] of int. daytab是指向13个整数元素数组的指针。
int *daytab[13]
daytab: arry[13] of pointer to int. daytab是13元素的数组,该一维数组的元素为指向整数的指针。
void *comp( )
comp:function returning pointer to void. comp是指向返回void指针的函数。
void (*comp)( )
comp:pointer to function returning void. comp是指向函数的指针,该函数返回值为void类型。
char (*(*x( ))[ ])( )
x:function returning pointer to arry[ ] of pointer to function returning char. X是一个函数,它返回一个指针,该指针指向一个一维数组,该一维数组的元素为指针,这些指针分别指向多个函数,这些函数返回值为char类型。
(X是一个函数返回的指向一维数组的指针,该一维数组的元素为指向返回值为char类型函数的指针。)
char (*(*x[3])( ) )[5]
x: arry[3] of pointer to function returning pointer to arry[5] of char.
X是一个3元素数组,该数组的3元素为指针,这3个指针分别指向1个函数,这3个函数分别返回指向一个5元素数组的指针,该5元素数组为char类型。
(X是一个指向3个函数的指针为元素的数组,这3个函数分别返回指向一个指向char类型5元素数组的指针。)
A2、ANSI C语言中全部转义字符
\a‘\007’响零符
\b‘\010’回退符
\f‘\014’换页符
\n‘\015’换行符
\r‘\012’回车符
\t‘\011’横向制表符
\v‘\013’纵向制表符
\\反斜杠
\?问号
\’单引号
\”双引号
\000八进制数
\xhh十六进制数
A3、运算符优先级与结合性
运算符
结合性
优先级
( ) [ ] →
从左至右
高
低
! ~ ++ -- + - * &(type) sizeof
从右至左
* / %
从左至右
+ -
从左至右
<< >>
从左至右
< <= > >=
从左至右
== !=
从左至右
&
从左至右
∧
从左至右
|
从左至右
&&
从左至右
||
从左至右
? :
从右至左
= += -= *= /= %= &= ∧= |= <<= >>=
从右至左
,
从左至右
关键字:
autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile
A4、Shell排序法
1959 D.L. Shell发明的Shell排序法:
先比较交换距离远的元素,可减少大量无序情况。被比较的元素之间的距离逐渐减少,直到减少为1,这时排序变成相邻元素的互换。
/*shellsort函数:按递增顺序对V[0]…V[n-1]进行排序*/
voidshellsort ( int v[ ]