5.1 指针
int* pi; //指向int类型 的指针
char** ppc; //指向字符的指针的指针
int* ap[15]; //15个指向int 类型的指针
int (*fp)(char*); //指向函数的指针(函数的地址),这种函数以char* 为参数,返回Int
int* f(char*); //有一个char* 参数的函数,返回一个指向int 的指针
5.2.2 字符串文字常量
voidf()
{
char* p="plato";
p[4]='e';//错误:给常量赋值;结果无定义
}//不能通过这样的指针去修改字符串文字常量,若要修改必须定义为:char p[]="plato";
5.3 指向数组的指针
void f()
{
char v[]="fdsf";
char* p=v; //隐式地从char[]转换到char*
v=p; //错误:不能给数组赋值
}
5.4.1 指针和常量
char *const cp; //cp是以个const指针,指向char类型,即:cp不能改变,而cp指向的内容是char类型,不是const的,所以pc指向的内容是可以改变的
const char* pc2;//pc2是一个指针,指向const char 类型,即:pc2是一个指针,且不是const型,所以可以改变,但其指向的内容为const char 类型,不能改变
char const* pc;//与上一个第一等价,pc是一个指针,指向const char类型
广泛一致的使用const,避免使用宏!(P145)