C语言:指针的几种形式
字符串的两种形式: 1、字符数组 char name[32] = “zhangsan”; //只能在初始化时这样做 strcpy(name,”lisi”); //整体赋值只能通过strcpy name = “lisi”; //error,将一个常量字符串的地址(“lisi")赋值给常量指针(char* const name) 2、字符指针 char *name = “zhangsan”; //指针变量name指向了常量字符串的开始地址 char* name; //在使用野指针(未初始化的指针) scanf(“%s”,name); //error, strcpy(name,”lisi”); //error,如果name指向了常量的字符串,会崩掉。 如果name没有初始化,程序有可能会崩掉,也有可能会覆盖内存中的数据。 name = “lisi”; //ok,重新修改指针变量name的指向,即指向一个新的字符串地址。 1、const int* p和int const* p:两者意义是相同的。指向的内容是只读数据,不可以q改变;但是指向的地址可以改变。 2、int* const p:必须先对指针初始化,而且指向的地址是只读的,不可以再被改变;但是指向的内容可以改变。 3、const int* const p:既不可以改变指针指向的地址,也不可以改变指针指向的内容。 来源: https:/