数组:
内存污染:比如定义了一个数组int a[10],可用的为a[0]-a[9],现在用了a[10],则数组后面的内存a[10]便被污染了,可能不可预料的改变某些变量的数值;
动态数组:使用malloc申请内存,使用realloc追加内存。
函数:
函数不可以嵌套定义,但可以嵌套调用。也可以自己调用自己(递归调用,但要做好函数退出的条件)。
一维数组、二维数组作为函数参数传递:
//void fun(int p[][n])
void fun(int (*p)[n])
{
}
//void fun(int p[][n][m])
void fun(int (*p)[n][m])
{
}
C语言编译处理:
0、预编译
1、编译
2、汇编
3、链接
各种指针定义:
0、整形指针 int *p;
1、整形 指针的指针 int **p;
2、整形 数组指针 int (*p)(5);
3、函数指针 int (*p)(int,int);
4、函数指针数组 int (*p[10])(int,int);
内存污染:比如定义了一个数组int a[10],可用的为a[0]-a[9],现在用了a[10],则数组后面的内存a[10]便被污染了,可能不可预料的改变某些变量的数值;
动态数组:使用malloc申请内存,使用realloc追加内存。
函数:
函数不可以嵌套定义,但可以嵌套调用。也可以自己调用自己(递归调用,但要做好函数退出的条件)。
一维数组、二维数组作为函数参数传递:
//void fun(int p[][n])
void fun(int (*p)[n])
{
}
//void fun(int p[][n][m])
void fun(int (*p)[n][m])
{
}
C语言编译处理:
0、预编译
1、编译
2、汇编
3、链接
各种指针定义:
0、整形指针 int *p;
1、整形 指针的指针 int **p;
2、整形 数组指针 int (*p)(5);
3、函数指针 int (*p)(int,int);
4、函数指针数组 int (*p[10])(int,int);