美文网首页
C语言指针之---指针声明与取值

C语言指针之---指针声明与取值

作者: 精灵GG | 来源:发表于2018-01-20 16:49 被阅读0次

    普通类型变量的声明

    char a =10 ;  //声明一个char类型,值为10的a变量

    short b = 20; //声明一个short类型,值为20的b变量

    int c = 30; //声明一个int类型,值为30的c变量

    这是我们普通数据类型的声明,十分常规。

    带*类型变量的声明

    int* px;   //声明一个int* 类型的px变量

    int** px2; //声明一个int**类型的px2变量

    int*** px3; //声明一个int***类型的px3变量

    int**** px4; //声明一个int****类型的px4变量

    现在大多数书上声明指针类型是int *px或者int * px 这样的形式的,这两种形式都是不推荐的。这样的声明不太符合程序员的思维。

    *(px1) 代表int类型

    *(px2) 代表int*类型

    *(px3) 代表int**类型

    *(px4) 代表int***类型

    在带*类型的变量的前面加上一个*,其类型就是原来的类型减去一个*

    带*类型变量的赋值

    如果是int类型赋值,我们上面看到,是直接int a; a=10即可,其实可以写成a= (int)10;这样赋值,只是int强制类型我们默认是不用写的。

    但是带*类型的赋值,是不能省略的,具体如下。

    int* px;   

    int** px2;

    int*** px3; 

    px = (int*)10;   //给int*赋值

    px2 = (int**)20; //给int**赋值

    px3 = (int***)30;//给int***赋值

    &符号的作用

    &符号作用其实是去变量的地址

    char a = 10;

    short b = 20;

    int c = 30;

    char* pa = &a;

    short* pb = &b;

    int* pc = &c;

    &pa 变成了char**类型

    &pb 变成类short**类型

    &pc 变成类int**类型

    取值

    带*类型的变量,可以通过在其变量前加*来获取其指向内存中存储的值

        int x, y;

        int* px1;

        int** px2;

        int*** px3;

        x =10;

        px1 = &x;  //取x的地址

        px2 = &px1;  //取x地址的地址

        px3 = &px2; //取x地址的地址的地址

        y= (*(*(*px3)));  //反取

    所以y的值为10。

    相关文章

      网友评论

          本文标题:C语言指针之---指针声明与取值

          本文链接:https://www.haomeiwen.com/subject/nsjtaxtx.html