1、在C语言中,当一维数组作为函数参数的时候,编译器总是把它解析成一个指向成一个指向其首元素首地址的指针
这也就是为什么数组int a[10],a不能a++操作,而把a传递给函数的时候,可以作为指针a++操作的原因。
2、内存为0的地址处,也就是NULL地址处,一般定义指针变量的同时最好初始化为NULL,然后使用完指针之后也将指针变量的值设置为NULL,防止野指针。
3、如果没有返回值,编译器则默认为函数返回的值是int类型。
4、函数的入口处用assert宏作入口校验
一般在函数入口处使用assert(NULL != p)对参数进行校验,在非参数的地方使用if(NULL != p)来校验,但是有个要求,是p在定义的同时被初始化为NULL,如果p指针没有被初始化为NULL,其内部是一个非NULL的乱码
#include <stdio.h>
#include <assert.h>int main()
{char *p = NULL;
// char c = 'a';
// p = &c;assert(p != NULL);printf("hello");return 0;
}
如果我注释了那2行,程序