c语言子函数怎么调用指针 c语言子函数调用举例

C语言调用函数指针

并不是不规范的问题,你子程序写法只能在子程序中输出正确的数据,而在主函数中无法得到交换过的x和y的值。参考程序运用指针让子程序去读写a和b的值,在子程序执行完成后,a和b的值确实得到了交换。

创新互联2013年至今,先为浦口等服务建站,浦口等地企业,进行企业商务咨询服务。为浦口企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

你的程序中子程序采用的不是指针类型参数,这样子程序无法将交换过后的值传回来。

C语言结构体程序子函数指针的使用

有多处错误,主程序中只有一处,但调用函数错得挺多的,最主要的是对结构指针的运用,

stu *p 下,引用其数组不能用(*p)[xx],因为p本身就是结构数组的首址,所以直接用p[xx]即可访问定义的所有单元。

以下将你的程序依原风格进行修改,主程序中将修改前的错误代码罗列于右,而order函数因为修改的地方多所以不再提示修改处:

#includestdio.h

typedef struct student

{

int num;

char name[20];

int a,b,c;

double ave;

}stu;

stu order(stu *p,int n);

int main()

{

stu s[6]; /*改为s[5]*/

int i;

for(i=0;i5;i++)

{

printf("input num:");

scanf("%d",s[i].num);

getchar();

printf("name:");

scanf("%s",s[i].name); /*原为scanf("%s",s[i].name); */

printf("a\tb\tc\n");

scanf("%d%d%d",s[i].a,s[i].b,s[i].c); s[i].ave=(s[i].a+s[i].b+s[i].c)*1.0/3;

}

order(s,5);

printf("num\tname\ta\tb\tc\n");

for(i=0;i5;i++)

{

printf("%d\t%s\t%d\t%d\t%d\t%lf\n",s[i].num,s[i].name,s[i].a,s[i].b,s[i].c,s[i].ave);

}

return 0;

}

stu order(stu *p,int n)

{

int j,k;

stu index;

for(j=0;jn-1;j++)

for(k=j+1;kn;k++)

if(p[j].avep[k].ave)

{

index=p[j];

p[j]=p[k];

p[k]=index;

}

}

c语言中的指针问题,以及子函数的调用

根据指针,

交换指针所指

数据

第二

使用"指针"

实现,

实际

,

奖p1

p2两

变量值进行交换,

奖两

址所指向

内存单元进行交换

第二

函数

吧所

int

*

都改

int,

能更清楚

干嘛


分享名称:c语言子函数怎么调用指针 c语言子函数调用举例
本文路径:http://scyanting.com/article/ddchooe.html