C语言笔记第四章指针表达式

文章作者 100test 发表时间 2007:03:10 17:24:51
来源 100Test.Com百考试题网


第四章 指针表达式
一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表达式。
下面是一些指针表达式的例子:
例六:
int a,b.
int array[10].
int *pa.
pa=&.a.//&.a是一个指针表达式。
int **ptr=&.pa.//&.pa也是一个指针表达式。
*ptr=&.b.//*ptr和&.b都是指针表达式。
pa=array.
pa .//这也是指针表达式。
例七:
char *arr[20].
char **parr=arr.//如果把arr看作指针的话,arr也是指针表达式
char *str.
str=*parr.//*parr是指针表达式
str=*(parr 1).//*(parr 1)是指针表达式
str=*(parr 2).//*(parr 2)是指针表达式
由于指针表达式的结果是一个指针,所以指针表达式也具有指针所具有的四
个要素:指针的类型,指针所指向的类型,指针指向的内存区,指针自身占据的
内存。
好了,当一个指针表达式的结果指针已经明确地具有了指针自身占据的内存
的话,这个指针表达式就是一个左值,否则就不是一个左值。
在例七中,&.a不是一个左值,因为它还没有占据明确的内存。*ptr是一个左
值,因为*ptr这个指针已经占据了内存,其实*ptr就是指针pa,既然pa已经在内
存中有了自己的位置,那么*ptr当然也有了自己的位置。
一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表达式。
下面是一些指针表达式的例子:
例六:
int a,b.
int array[10].
int *pa.
pa=&.a.//&.a是一个指针表达式。
int **ptr=&.pa.//&.pa也是一个指针表达式。
*ptr=&.b.//*ptr和&.b都是指针表达式。
pa=array.
pa .//这也是指针表达式。
例七:
char *arr[20].
char **parr=arr.//如果把arr看作指针的话,arr也是指针表达式
char *str.
str=*parr.//*parr是指针表达式
str=*(parr 1).//*(parr 1)是指针表达式
str=*(parr 2).//*(parr 2)是指针表达式
由于指针表达式的结果是一个指针,所以指针表达式也具有指针所具有的四
个要素:指针的类型,指针所指向的类型,指针指向的内存区,指针自身占据的
内存。
好了,当一个指针表达式的结果指针已经明确地具有了指针自身占据的内存
的话,这个指针表达式就是一个左值,否则就不是一个左值。
在例七中,&.a不是一个左值,因为它还没有占据明确的内存。*ptr是一个左
值,因为*ptr这个指针已经占据了内存,其实*ptr就是指针pa,既然pa已经在内
存中有了自己的位置,那么*ptr当然也有了自己的位置。

相关文章


C语言笔记第一章指针的概念
关于2006年上半年全国计算机等级考试报名工作的通知
C语言笔记第四章指针表达式
上海:2006年上半年全国计算机等级考试开始报名
C语言笔记第二章指针的算术运算
宁夏2005年9月全国计算机等级考试成绩查询
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛