c语言中fun()函数有什么作用,要有例子说明。
4个回答
展开全部
起到调用作用
#include<stdio.h>
void
fun(int
*p)
{printf(%d\n",p[5]);}
main()
{int
a[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);
}
从main函数看起,定义一个数组a,fun(&a[3])调用a[3]元素的地址,到fun函数中执行,fun函数总的*p指向a[3],输出p[5]就是a[3]的地址加上5,即a[8],返回主函数中的值即为a[8]的值为9,运行结果为9
(数组元素名从a[0]到a[9]共十个元素。)
#include<stdio.h>
void
fun(int
*p)
{printf(%d\n",p[5]);}
main()
{int
a[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);
}
从main函数看起,定义一个数组a,fun(&a[3])调用a[3]元素的地址,到fun函数中执行,fun函数总的*p指向a[3],输出p[5]就是a[3]的地址加上5,即a[8],返回主函数中的值即为a[8]的值为9,运行结果为9
(数组元素名从a[0]到a[9]共十个元素。)
展开全部
首先不管是什么意思 这个函数里面的s[i] s[j+1] 会编译出错的··最好用*(s+j+1)这样的形式,昨天考级就出了类似的题目,因为在子函数里面没有定义这个数组 只定义了 指针。
不过如果这个函数之前数组有定义的话可能就不会出错。
s[i]!=0 应该是 s[i]!='\0'的 不然数组里面有个字符时0的话就跳出来了。
这个改的话你自己改吧··增加点经验
void fun(char *s, char c)
{ int i, j, n;
for(i=0; s[i]!=0 ; i++)
if(s[i]==c) ;//这是个找你设定好的字符
{
n=0;
while(s[i+1+n]!='\0') n++;
//确定你找到的那个字符在什么位置,此时s[i+1+n]是最后一个字符了
for(j=i+n+1; j>i; j--) s[j+1]=s[j];
//注意到j-- 就是说在倒叙的填充原来的字符,s[j+1] 就意味着比原来的数组多了一个字符
s[j+1]=c ;
i=i+1;
}
之后就想是 kingbird2011 说的那样···
不过 补充一点是输入 是s=“sadag”的话··(注意是两个a)
输出是 saadaag 应为是在for那个大循环里面 这样就解释得了最后那个i+=1的意义了
一步步的看就能看明白的了·加油吧
不过如果这个函数之前数组有定义的话可能就不会出错。
s[i]!=0 应该是 s[i]!='\0'的 不然数组里面有个字符时0的话就跳出来了。
这个改的话你自己改吧··增加点经验
void fun(char *s, char c)
{ int i, j, n;
for(i=0; s[i]!=0 ; i++)
if(s[i]==c) ;//这是个找你设定好的字符
{
n=0;
while(s[i+1+n]!='\0') n++;
//确定你找到的那个字符在什么位置,此时s[i+1+n]是最后一个字符了
for(j=i+n+1; j>i; j--) s[j+1]=s[j];
//注意到j-- 就是说在倒叙的填充原来的字符,s[j+1] 就意味着比原来的数组多了一个字符
s[j+1]=c ;
i=i+1;
}
之后就想是 kingbird2011 说的那样···
不过 补充一点是输入 是s=“sadag”的话··(注意是两个a)
输出是 saadaag 应为是在for那个大循环里面 这样就解释得了最后那个i+=1的意义了
一步步的看就能看明白的了·加油吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-18
展开全部
等级考试中喜欢使用fun(英文全名function,功能的意思)做为函数名,其具体功能由程序设计者确定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询