当前位置:首页 » 编程语言 » c语言指针函数形参
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针函数形参

发布时间: 2022-01-23 19:44:22

c语言的指针作函数参数

改成下面代码看看:

#include<stdio.h>

voidabc(int*i,int*j)

{

intm;

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

}

voidmain()

{

inta,b;

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

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

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

abc(pa,pb);//

printf("a=%d b=%d ",a,b);

}

⑵ C语言指针作为函数参数

#include<stdio.h>
int*fmax(int*,int*);/*函数的声明和下面的定义参数类型不一致,应该改成指针类型*/
voidmain()
{
intx,y;int*c,*d;
int*pmax;
scanf("%d%d",&x,&y);
c=&x;
d=&y;
pmax=fmax(c,d);
printf("max=%d ",*pmax);
printf("max=%d ",*pmax);
}
int*fmax(int*a,int*b)
{
int*p;
p=*a>*b?a:b;
returnp;
}

⑶ ★C语言 指针作函数参数

首先说明一下,你这段代码差一个}
应该是
#include
void fun(char *c,int d)
{
*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}

main()
{
char b='a',a='A';
fun(&b,a);
printf("%c,%c\n",b,a);

在fun中的输出,可以说明是对两个参数作了增一操作*c=*c+1; 说明是对指针指向的内容作+1操作,会影响函数外c指向的内空变化;而d=d+1只是表示对d这个参数作+1操作,不会对函数外的实际参数变化。
所以第一次输出的两个数是b,B 而第二次输出的应该是b,A.
%e表示按科学记数法输出浮点数,用在这里是错误的。应该是%c.
所以正确的答案应该是b,B,b,A

⑷ C语言中指针作为函数参数的问题。

更正以下楼主的问题补充,swap函数的两个参数,定义的时候,定义p1和p2,他们都int*类型的,也就是两个整型指针的类型。主函数传递进来的是a和b的地址,swap函数是将两个地址的值,也就是*p1和*p2交换,达到的效果是将两个地址上的值交换

⑸ c语言中,函数的形参什么时候必须是指针

当你需要改变传递进来的参数的数值时 要传给指针

⑹ 关于c语言中指针的指针作为函数参数的问题

clrscr()当然不能用啊 如果你是在VC6.0的环境中编译的话
这个函数只能在TC中用,在VC中就不能用了
如果用Turboc2.0的话,我记得不用包含那个头文件,直接就可以用的。它是C的图形函数,C++里不能用了。
你是不是以前用TC写程序啊?我也是,刚转成VC时也不太习惯。VC6.0里包含#include <stdlib.h> 这个文件,想刷屏时就system("cls"); 便能起到相同的效果。

⑺ 关于c语言 指针变量作为函数形参的问题

这里是指针变量,但是它指向的空间是被分配过的.你可以向里面写入或者读出.

⑻ c语言指针的指针做函数参数

你的sort函数定义的时候接受的参数实际上就是指针的指针,char *string[] 也可以写成char **string;

⑼ c语言指针做函数参数问题:

▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
int fun(int &a,int&b)是引用是正确的。
你题目中这个函数作用应该是交换两个数。这种交换函数是相当典型的。不能够直接用值去交换,而必须用值的地址去交换才能最终转换。
是考试中常考查的。给个例子你运行看看就知道了:
#include<iostream.h>
void swap1(int a1,int b1)
{
int temp1=a1;
a1=b1;
b1=temp1;
}
void swap2(int &a2,int &b2)
{
int temp2=a2;
a2=b2;
b2=temp2;
}
main()
{
int a=8,b=5;
cout<<"初始时值分别为: a="<<a<<" b="<<b<<endl;
swap1(a,b);
cout<<"不使用地址传递后产生交换无变化: a="<<a<<' '<<"b="<<b<<endl;
swap2(a,b);
cout<<"用地址传递后产生正确的交换: a="<<a<<' '<<"b="<<b<<endl;
return 0;
}
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
---就是不能理解怎样实现将实参值改变的过程?
实际上是这样的,看上面的这个例子,swap2(a,b)函数,将实参a,b的值的地址(注意是地址)赋于&a2,&b2。此时a2,b2的在内存中占的地址和a,b在内存中占的地址是一样的,所以实现了a2和b2的交换也就实现在a和b的交换。a2,b2是对a,b引用它。

⑽ C语言用指针作函数参数

选D
因为第一个参数是地址传递,fun(&b,a);中传入a字符。*c=*c+1将c的值变为b字符。主函数的值改变。
第二个参数是值传递,所以在函数中d的值为B字符。但是并不影响主函数的值,所以主函数输出a的值是A。b的值是b。