zoukankan      html  css  js  c++  java
  • C指针决心 ------ 指针表达式

             本文是自己学习所做笔记。欢迎转载。但请注明出处:http://blog.csdn.net/jesson20121020

             所谓的指针表达式是指一个表达式。其结果是一个指针。

           例1.

    int  a,b;

    int array[20];

    int *p;

    p = &a;             //&a 就是一个指针表达式,由于&a的结果就是一个指针。

    int **q = &p;     //&p也是一个指针表达式。

    *q = &b;            //*p和&b都是一个指针表达式。

    p = array;

    p++;                   //同理,这也就是指针表达式。

            例2.

    char *arr[10];

    char **parr = arr;           //arr能够看做是一个指针。代表数组的首地址,这样,arr也是一个指针表达式。

    char *s;

    s = *parr;                        //非常easy看出*parr也是一个指针表达式。

    s = *(parr+2);                 //同理,*(parr+2)是一个指针表达式。


            由于,指针表达式的结果是一个指针,所以指针表达式也满足指针的四个要素。即,指针的类型。指针所指向的类型,指针的值或指针所指向的内存地址,以及指针自身占领的内存。

           另外,须要注意。当一个指针表达式的结果指针已经明白地具有指针自身占领的内存的话,那么这个指针表达式就是一个左值。能够进行自加,自减等操作。否则的话。这个指针表达式就不是一个左值。如例1中的&a就不是一个左值,由于没该表达式的结果指针也就是a的地址并没有占领内存,所以不是一个左值,当然不能进行自加等操作了,但*q就是一个左值。由于在定义时。已经给指针q分配空间了。


         


            

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    算法复习:字符串
    【第五天打卡。
    【第四天打卡。
    【第三天打卡。
    第二天打卡。
    【唉
    配环境到崩溃系列
    所谓环境……
    【随便吐槽
    第四天。打卡。【偷懒了两天hhhh
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4751149.html
Copyright © 2011-2022 走看看