首页 > 编程知识 正文

用函数指针调用数组,数组指针和指针数组的区别

时间:2023-05-04 18:31:58 阅读:61866 作者:135

文章目录1、数组指针和指针数组1、数组指针: 2、指针数组: 2、指针函数和函数指针1、指针函数(1)定义;2 )一般格式;3 )例;2 .函数指针(1)定义;一般格式)

一、数组指针和指针数组1、数组指针:

定义: int(*p ) [n]

)高优先级首先表示p是指向整数一维数组的指针。 这个一维数组的长度为n,也可以说是p的步骤。 换句话说,当执行p 1时,p跨越n个整数数据的长度。

使用方法:

# include stdio.h # include stdlib.hint main ()//数组指针的使用方法,有用。 intb [ 16 ]={ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 }; int(p ) [4]; //此语句定义数组指针,指针步骤为四个int,即16位。 //int *p2=b; p=b; int i=0; while(I16 ) printf('%d(t ),) p ) [i]; //printf('%d(t ),*p2 ); I; }2、指针数组:定义: int *p[n]

[]优先级高,首先与p合并为数组,然后int*指示这是具有n个指针类型数组元素的整数指针数组。 在此处运行p 1时,p指向以下数组元素: 这样代入是错误的。 p=a; 因为p是未知的表示,所以只存在p[0]、p[1]、p[2]…p[n-1],可以分别用指针变量保存变量地址。 但是,这样p=a; 其中p表示指针数组中第一个元素的值,a的第一个地址的值。

这样,两者的区别就清楚了。 数组指针只是指针变量,在c语言中似乎专门指向二维数组,占用了内存中指针的存储空间。 指针数组是多个指针变量,作为数组存在于存储器中,占用多个指针的存储区域。

二、指针函数与函数指针1、指针函数(1)的定义:指针函数实质上是一个函数,与普通函数相同,但普通函数都有返回类型,(无返回值即为无值型),指针函数返回类型为

)2)一般格式)类型名称*函数名称(函数自变量列表);

代码如下所示。

int*fun(inta,int b ); int*fun(inta,int b ); int*fun(inta,int b ); 此代码定义了返回类型为int *类型的指针函数。

(3)例) includestdio.hchar*strcpy ) char *s2,char *s2 ) ) char*p=S1; 用p保存在//S1中接收到的实参字符数组的起始地址while () S1=) S2 ); //S2指向“ 0”时,返回p先完成赋值,循环结束; //以函数名称返回指针值(int main void ) ) { char s[20]; printf('%sn ',strcpy(s,' Welcome to you!' ); return 0,输出返回值指示的内容; } 2.函数指针(1)的定义:函数指针的本质是指针变量,该指针是指该函数。 简而言之,函数指针是指向函数的指针。

)2)一般格式:类型名称(*指针变量名称) )函数自变量列表);

例如:

int(*fun ) ) int a,int b ); 注意:定义函数指针的类型名称与函数的返回类型相同。

3 .指针函数和函数指针的区别主体用途用于求出指针函数返回值的函数指针指向函数(函数调用) () ) ) ) ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。