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:既不可以改变指针指向的地址,也不可以改变指针指向的内容。
posted @ 2015-08-04 19:08  XYQ全哥  阅读(868)  评论(0编辑  收藏  举报