什么是指针?
什么是数组?
指针与数组的关系?
int *p;
p为指针变量,p里存储的内存地址的内存称为p所指向的内存。
指针变量p里存储的任何数据都将被当作地址来处理。
“*”号前面的数据类型只是说明指针所指向的内存里存储的数据类型。
所以在32位系统下,不管什么样的指针类型,其大小都为4bytes。可以用sizeof来进行测试。
int *p=NULL 和 *p=NULL 有什么区别?
int *p = NULL;//定义了一个指针变量p,其指向的内存里在保存的是int类型的数据;在定义变量p的同时把p的值设 置为0x00000000,而不是把*p的值设置为0x00000000,这个过程叫初始化,是在编译时进行的。
int *p; //定义了一个指针变量p,其指向的内存里在保存的是int类型的数据; p里面的数据是非法的。
*p=NULL;//把NULL赋值给*p,但是p指向的数据是非法的,所以调试的时候编译器可能会报内存访问错误。
注意NULL的写法,不可写成小写。也不要少写L
NULL表示什么也不指向,表示空指针。
NUL是ASCII码表的第一个字符,表示的是空字符。