C语言 使用子函数的函数参数传回指针的方法

我在网上没有找到类似的例子,能帮忙写一个最简单的例子么?感激不尽...... 我在网上没有找到类似的例子,能帮忙写一个最简单的例子么?
感激不尽...
展开
 我来答
chenqa08
2012-03-14 · TA获得超过275个赞
知道答主
回答量:105
采纳率:0%
帮助的人:111万
展开全部
不知下列代码对你是否有用
记住:C中只有_值_传递!

#include <conio.h>
#include <stdio.h>

void fun(int **pp, int *i);

int main(void)
{
int *p, i;

i = 88;
fun(&p, &i);
printf("%d\n", *p);
getch();
return 0;
}

void fun(int **pp, int *i)
{
*pp = i;
}

或者

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N 100

void getmemory(int **pp, int n);

int main(void)
{
int *p, i;

getmemory(&p, N);
for (i = 0; i < N; i++)
p[i] = i;
for (i = 0; i < N; i++)
(i+1)%10 ? printf("%3d", p[i]) : printf("%3d\n", p[i]); /*输出0~99*/

getch();
return 0;
}

void getmemory(int **pp, int n)
{
*pp = (int *)malloc(n * sizeof(int));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqiruilqirui
2015-10-14 · TA获得超过232个赞
知道答主
回答量:162
采纳率:0%
帮助的人:41.4万
展开全部
  不知下列代码对你是否有用
记住:C中只有_值_传递!

#include <conio.h>
#include <stdio.h>
void fun(int **pp, int *i);
int main(void){ int *p, i;
i = 88;
fun(&p, &i);
printf("%d\n", *p);
getch();
return 0;}
void fun(int **pp, int *i)
{ *pp = i;}

或者

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N 100

void getmemory(int **pp, int n);

int main(void)
{ int *p, i;
etmemory(&p, N);
for (i = 0; i < N; i++)
p[i] = i;
for (i = 0; i < N; i++)
(i+1)%10 ? printf("%3d", p[i]) : printf("%3d\n", p[i]); /*输出0~99*/
getch();
return 0;
void getmemory(int **pp, int n)
{
*pp = (int *)malloc(n * sizeof(int));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxc2012345
2012-03-08 · 超过19用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:53.9万
展开全部
楼主的意思就是C里面是怎么带回返回值的?
void fun( int *p )
{
.....
}
void main()
{
int a = 0;
fun( &a );
}
追问
例如这是使用子函数的函数参数传回整形a,b,如果是指针a,b改怎样传回呢? 谢谢
void ser(int *x,int *y)
{
*x=20;
*y=30;
}
main()
{
int a,b;
ser(&a,&b);
printf("a:%d b:%d\n",a,b);
}
追答
void ser(int *x,int *y)
{
*x=20;
*y=30;
}
main()
{
int a,b;
ser(&a,&b);
printf("a:%d b:%d\n",a,b);
}
这样写是对的;
不过一般不是这么用,这不是无聊吗?
一般函数原型是这样的 void fun( int, char,.... void * );
典型的是signal()函数;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jone091167
2015-10-23 · TA获得超过12.8万个赞
知道大有可为答主
回答量:3754
采纳率:86%
帮助的人:450万
展开全部
对第1种方式扩展,由于fp1是全局变量,所以子函数对它的操作会影响到主函数:定义fp1为全局变量,子函数对其赋值,然后主函数对其所指文件进行写入操作。
#include "stdio.h"

FILE *fp1; //将文件指针定义为全局变量void sub(void)
{
fp1=fopen("test.txt","awt");//如果有选项a可以在保证文件的原有内容不丢失,新内容写在后面,如果没有a则会删除原有内容替换为新内容。
}

void main(void)
{
sub();
fprintf(fp1,"\n%s\n","测试文件指针作为全局变量是否可以传递到子函数");
fclose(fp1);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaowei01357
2012-03-07 · TA获得超过241个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:92.2万
展开全部
没看懂你到底想干什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式