因为函数原型是void f(int, int *);
成都创新互联-专业网站定制、快速模板网站建设、高性价比源汇网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式源汇网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖源汇地区。费用合理售后完善,10多年实体公司更值得信赖。
第一个参数是int型,第二个函数是指向int的指针
所以只有D选项f(*p, a);正确
一、
假设函数 void f(int b[])
(1)有定义int a[15],调用f(a),传递的是首地址。
(2)如果是调用f(a[1])相当于调用f(a+1),传递的还是地址,不是整个数组。
二、和一中说的一样,依然是地址。
三、不是,是第二行的地址,不是第二列,C和fortran不一样,是以行为主序的。例如:
int arr[3][4];
int (*a)[4] = arr;
a指向arr[0],第一行行地址
a+1指向arr[1],第二行行地址
a是全局变量,所以每调用一次函数这个值就被+1。
s[d] = s[a] 就是赋值语句,相当于改变主函数中的t数组。
总共调用了4次fun函数。
1。s[4] = s[0],此时t数组为{1,3,5,7,1}
2。s[3] = s[1] ,此时t数组为{1,3,5,3,1}
后面的你类似再推导就行了,最后的输出是:13531。
不过这个程序也有点问题,就是k并没有定义。
分享题目:C语言函数指针解题 c语言指针函数实例
当前网址:https://www.cdcxhl.com/article18/dopcodp.html
成都网站建设公司_创新互联,为您提供企业建站、网站营销、网站策划、全网营销推广、静态网站、App开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联