5.1 指针与地址
指针是一种保存地址的变量.是能够存放一个地址的存储单元(32位机器占4个字节,64位机器占8个字节).
p=&c; 将c的地址赋给变量p 成p是指向c的指针. 地址运算符&只能应用于内存中的对象,即变量和数组,不能用于表达式,常量,或register变量.
声明 int *p; 表明表达式*p的结果是一个int类型.
指针只能指向某种特定类型的对象,每个指针必须指向某种特定的数据类型(void类型的指针除外,可以存放指向任何类型的指针,但它不能间接引用其自身 即void *vp; *vp是不允许的)
5.2 指针与函数参数
C函数参数是值传递,即主调函数传给被调用的函数一个副本. 因此被调用函数不能直接修改主调函数中变量的值. 要修改的话,可以用指针作参数.
5.3 指针与数组
数组名和指针的不同.指针是一个变量,可以进行赋值 自增(p++;p=a)等操作,而数组名不是变量,类似a=p;a++;等形式的语句是非法的. 但是当把数组名传递给一个函数时,该参数是一个局部变量,因此,数组名参数必须是一个指针,也就是一个存储地址值的变量