指针转换为整数_数据结构与算法c语言

指针转换为整数_数据结构与算法c语言数组与指针的运用并不是每个时候数组和指针都能相互装换,有特殊情况。1数组与指针的相互转换int arr[5] = {1,2,3,4,5};int *p = arr;一个指针指向数组的首地址,那么指针和数组可以相互转换。arr[i] =

数组与指针的运用   并不是每个时候数组和指针都能相互装换,有特殊情况。   1数组与指针的相互转换   int arr[5] = {1,2,3,4,5};   int *p = arr;   一个指针指向数组的首地址,那么指针和数组可以相互转换。   arr[i] ==== *(arr+i) ==== *(p+i) ==== p[i]   转换公式:x[y] === *(x+y) //*是对地址的解引用   数组 指针   2、数组指针   概念:指向数组的指针   int (*p)[2]; //例子 int p[][2];就相当于int (*p)[2]   int arr[3][2]; p = arr; //指向一个二维数组   3、指针数组   概念:数组素是指针   int *p[2];   int *p1,*p2;   int *p[2] = {p1,p2};   4、函数指针   概念:指向函数的指针   void (*p)(int,int);   void func(int a,int b);   p = func; //函数名也是地址   p(10,20);   函数指针一般作为回调函数的参数。   5、指针函数   概念:返回值为指针的函数   void *p(int,int);   6、函数指针数组   概念:由函数指针构成的数组   如:void (p[2])(int,int)   p是一个数组,数组素是指针,指向一个函数,这个函数的参数为两个int,返回值为void   7、复杂声明   分析复杂声明分为两步:   (1)从左到右找到第一个非关键字的标识符   (2)以这个标识符为中心与符号([]、()、)逐个接合   优先级:   第一:声明中被括号括起来的部分   第二:后缀操作符:[] ()   []:是一个数组,分析它的数组素   ():是一个函数,分析它的返回值和参数   第三:前缀操作符:   :是一个指针,分析它指向的内容   *例子1: char (func)(int)   分析:   ①从左到右找到第一个非关键字的标识符func   ②跟结合,func是一个指针,执向xxx   ③跟()结合,指向一个函数,这个函数的返回值是char *,参数是int   总结:func是一个函数指针   *例子2:char (func[10])(int)   分析:   ①从左到右找到第一个非关键字的标识符func   ②跟[]结合,func是一个数组,数组素是xxx   ③跟结合,数组素是一个指针,指向xxx   ④跟()结合,指向一个函数,这个函数的返回值是char *,参数是int   总结:func是函数指针数组   *例子3:int (func(int))[3]   分析:   ①从左到右找到第一个非关键字的标识符func   ②跟()结合,func是一个函数,函数的参数是int,返回值是xxx   ③跟结合,返回值是一个指针,指向xxx   ④跟[]结合,指向一个数组,数组素int *   总结:func是数组指针函数   *例子4:char ((func(char (p)(char )))[2])(int)   分析:   ①从左到右找到第一个非关键字的标识符func   ②跟()结合,func是一个函数,参数是一个函数指针,返回值是xxx   ③跟结合,返回值是一个指针,指向xxx   ④跟[]结合,指向一个数组,数组素是xxx   ⑤跟结合,数组素是一个指针,指向xxx   ⑥跟()结合,指向一个函数,这个函数的参数是int,返回值是char   总结:func是函数指针数组指针函数   a) 一个整型数 int a;   b) 一个指向整型数的指针 int *a;   c) 一个指向指针的的指针,它指向的指针是指向一个整型数 int a;   d) 一个有10个整型数的数组 int a[10];   e) 一个有10个指针的数组,该指针是指向一个整型数的 int *a[10];   f) 一个指向有10个整型数数组的指针 int (*a)[10];   g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数   int (*a)(int)   h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数   int (*a[10])(int);

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/35608.html

(0)
上一篇 2024年 9月 9日
下一篇 2024年 9月 9日

相关推荐

关注微信