初始化

指针几种初始化:   某个变量地址 内存地址 或者字符串常量 或者NULL


某个变量地址

int i= 10;
int *p2 = &i; //声明1个指针p2,并直接初始化为变量i的值



char letter = 'L';
char *myLetter = &letter; // 声明1个指针变量myLetter 并直接初始化为letter的地址


内存地址

char * name = (char*)malloc(10);  //声明1个字符指针name
strcpy(name, "abcde123456");

printf("name=%s \n",name);


字符串常量

char * mystr = "welcome to c!"; // 字符串常量

NULL

NULL地址在内存中是不存在的,是0地址

int *p1 = NULL;// 声明指针变量p1,并初始化为NULL

野指针

char *p;
printf("p=%c \n",*p); // 会报错

错误例子

# *p    p必须是有效的地址,否则会引发程序奔溃

野指针

char *p;
printf("p=%c \n",*p);

NULL

char *p = NULL;
printf("p=%s \n",*p);