当前位置:   article > 正文

c语言指针变量取值,C语言指针之---指针声明与取值

c语言中指针变量取值

普通类型变量的声明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。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程领航者/article/detail/63203
推荐阅读
相关标签
  

闽ICP备14008679号