正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 int 不允许把一个数赋予指针变量,故下面的赋值是错误的: p=1000; 被赋值的指针变量前不能再加“*〃说明符,如写为*p=&a也是错误的 假设 int i=200, x int =lp: 我们定义了两个整型变量i,x,还定义了一个指向整型数的指针变量ipei,x中可存放 整数,而i中只能存放整型变量的地址。我们可以把i的地址赋给i: 此时指针变量ip指向整型变量i,假设变量i的地址为1800,这个赋值可形象理解为下 图所示的联系。 1800 200 1800 以后我们便可以通过指针变量ip间接访问变量i,例如 X=*1p 运算符*访问以ip为地址的存贮区域,而ip中存放的是变量i的地址,因此,*ip访问的 是地址为1800的存贮区域(因为是整数,实际上是从1800开始的两个字节),它就是i所占用 的存贮区域,所以上面的赋值表达式等价于 X=1 另外,指针变量和一般变量一样,存放在它们之中的值是可以改变的,也就是说可以改变 它们的指向,假设 int 1,j, *kpl, *p pI=&i p2=& 则建立如下图所示的联系 第4页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第4页 int a; int *p; p=&a; 不允许把一个数赋予指针变量,故下面的赋值是错误的: int *p; p=1000; 被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的。 假设: int i=200, x; int *ip; 我们定义了两个整型变量 i,x,还定义了一个指向整型数的指针变量 ip。i,x 中可存放 整数,而 ip 中只能存放整型变量的地址。我们可以把 i 的地址赋给 ip: ip=&i; 此时指针变量 ip 指向整型变量 i,假设变量 i 的地址为 1800,这个赋值可形象理解为下 图所示的联系。 以后我们便可以通过指针变量 ip 间接访问变量 i,例如: x=*ip; 运算符*访问以 ip 为地址的存贮区域,而 ip 中存放的是变量 i 的地址,因此,*ip 访问的 是地址为1800的存贮区域(因为是整数,实际上是从1800开始的两个字节),它就是i所占用 的存贮区域, 所以上面的赋值表达式等价于 x=i; 另外,指针变量和一般变量一样,存放在它们之中的值是可以改变的,也就是说可以改变 它们的指向,假设 int i,j,*p1,*p2; i='a'; j='b'; p1=&i; p2=&j; 则建立如下图所示的联系:
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有