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:既不可以改变指针指向的地址,也不可以改变指针指向的内容。
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!