网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
深入理解C语言指针奥秘系列文章之二
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
p;   **ptr=34;
    //*ptr的结果是ptr所指向的东西,
    在这里是一个指针,对这个指针再做一次*运算,
    结果就是一个int类型的变量。

    指针表达式

    一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表式。下面是一些指针表达式的例子:

    例六:

    inta,b;
    intarray;
    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当然也有了自己的位置。

 


 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号