C语言用指针作函数参数

Python07

C语言用指针作函数参数,第1张

选D

因为第一个参数是地址传递,fun(&b,a)中传入a字符。*c=*c+1将c的值变为b字符。主函数的值改变。

第二个参数是值传递,所以在函数中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。b的值是b。

改成下面代码看看:

#include <stdio.h>

void abc(int *i,int *j)

{

int m

m=*i //指针变量的值也就是地址不能赋值给一般变量

*i=*j//*i,*j才是指针变量指向的变量的值

*j=m   

}

void main()

{

int a,b

int *pa=&a,*pb=&b

printf("请输入a,b的值:")

scanf("%d,%d",&a,&b)

abc(pa,pb)  //

printf("a=%d\tb=%d\n",a,b)

}

#include <stdio.h>

int *fmax(int *,int *)    /*函数的声明和下面的定义参数类型不一致,应该改成指针类型*/

void main()

{

int x,yint *c,*d

int *pmax

scanf("%d%d",&x,&y)

c=&x

d=&y

pmax=fmax(c,d)

printf("max=%d\n",*pmax)

printf("max=%d\n",*pmax)

}

int *fmax(int *a,int *b)

{

int *p

p=*a>*b?a:b

return p

}