【转】谈谈C里面的指针之四【指针表达式】

作者在 2010-10-18 09:22:24 发布以下内容

一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表达式

下面是一些指针表达式的例子:int a,bint 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*strstr=*parr //*parr是指针表达式

str=*(parr+1)//*(parr+1)是指针表达式

str=*(parr+2)//*(parr+2)是指针表达式

由于指针表达式的结果是一个指针,所以指针表达式也具有指针所具有的四个要素:

指针的类型,指针所指向的类型,指针指向的内存区,指针自身占据的内存当一个指针表达式的结果指针已经明确地具有了指针自身占据的内存的话,这个指针表达式就是一个左值,否则就不是一个左值比如,&a不是一个左值,因为它还没有占据明确的内存。*ptr是一个左值,因为*ptr这个指针已经占据了内存,其实*ptr就是指针pa,既然pa已经在内存中有了自己的位置,那么*ptr当然也有了自己的位置

Linux/C | 阅读 549 次
文章评论,共1条
小K鸟
2010-11-02 16:05
1
<img src="image/face/24.gif" class="face">
游客请输入验证码
浏览3366次
文章归档