美文网首页从汇编到C++
C语言19 指针取值的两种方式

C语言19 指针取值的两种方式

作者: Asura_Luo | 来源:发表于2018-05-04 02:49 被阅读0次

C语言19 指针取值的两种方式

一级指针和多级指针

int i =100;

int* p1 = &i;  
int** p2 = &p1;  
int*** p3 = &p2;  
int**** p4 = &p3;  
int***** p5 = &p4  
int****** p6 = &p5;  
int******* p7 = &p6;

int****** px1 = *(p7); 
int***** px2 = *(px1); 
int**** px3 = *(px2); 
int*** px4 = *(px3); 
int** px5 = *(px4); 
int* px6 = *(px5); 
int px7 = *(px6); 

int px7 = *(*(*(*(*(*(*(p7))))))); 

*()与[]的互换表示

int* p = (int*)1;
printf("%d %d \n",p[0],*p);  //p[0] = *(p+0) = *p  

int** p = (int**)1;
printf("%d %d \n",p[0][0],**p);  
printf("%d %d \n",p[1][2],*(*(p+1)+2));

int*** p = (int***)1;
printf("%d %d \n",p[1][2][3],*(*(*(p+1)+2)+3));  

同理:
*(*(*(*(*(*(*(p7))))))))  
= *(*(*(*(*(*(p7+0)+0)+0)+0)+0)+0) 
= p7[0][0][0][0][0][0][0] 

总结

*(p+i) = p[i]  
*(*(p+i)+k) = p[i][k]  
*(*(*(p+i)+k)+m) = p[i][k][m]  
*(*(*(*(*(p+i)+k)+m)+w)+t) = p[i][k][m][w][t]  
*() 与 []可以相互转换  

相关文章

  • C语言19 指针取值的两种方式

    C语言19 指针取值的两种方式 一级指针和多级指针 *()与[]的互换表示 总结

  • c++11智能指针父类指针转换为子类指针

    1 C语言指针类型转换 C语言中的指针就是裸指针,裸指针存储是指向计算机内存的某一(起始)地址,通过*取值操作符可...

  • C语言指针/引用/取值

    指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例...

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

    普通类型变量的声明 char a =10 ; //声明一个char类型,值为10的a变量short b = 20;...

  • C语言函数指针和指针函数

    C语言函数指针和指针函数 在学习C语言的过程中,“指针函数”和“函数指针”经常容易搞混了, 最简单的辨别方式就是看...

  • C语言指针

    c语言指针其实只需要理解两个东西就可以了。 1. * 的含义(取值符) 2. & 的含义(取地址符) 指针的...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • enum枚举的使用

    在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值...

  • C语言中的字符串

    C语言中的字符串表示有两种表示方式 1、字符数组方式2、字符指针方式不管是那种方式,内存当中存放的都是字符的ASC...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

网友评论

    本文标题:C语言19 指针取值的两种方式

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