一、指针
1、
指针只是一个变量,它存储数据在内存中的地址而不是存储数据本身。
C语言中指针变量拥有和其他变量一样的类型。
当声明一个指针时,仅仅是为指针本身分配了空间,并没有为指针所引用的数据分配空间。
结构不允许包含自身的实例,但可以包含指向自身实例的指针。
指针的运算是加减对应指向数据类型的字节数。
数组*(*(a+i)+j) a是个二维指针,先指向某行,在指向某列。对于二维数组声明,列元素个数必须固定如a[][3],二维数组由一维数组连续构成。
未初始化的指针是潜在的危险,应该char *p=NULL;
2、函数指针(也是一个变量:指针变量)
int (*fun_p)(void *p1, void *p2);
fun_p=fun;
a=fun_p(&x, &y);
二、递归
1、基本递归
int factorial(int n)
{
if((n == 1) || (n == 0))
{