c语言函数改变指针 函数修改指针变量

C语言中指针:不能通过改变指针形参的值而使指针实参的值改变,如下例

在 huan(int *p1,int *p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。

创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为宣威企业提供专业的做网站、成都网站制作宣威网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

不可以。为什么不可以,你是企图通过改变指针形参的值而使指针实参的值也改变。函数调用结束后,pp2变量所占存储空间被释放。

c语言中形参与实参的关系是:形参是实参的值副本。无论参数的类型是什么,传递到子函数中的形参只是实参的值。所以,在改变形参变量自身的值时,是与实参无关的。换句话说,形参的改变不会影响到实参。

修改了一下程序,如下所示。你的fun函数的那个排序过程我理解的不是太清。我用选择排序完成了你的要求。你自己检查检查再。

计算机c语言中被调用函数的指针发生变化则主调函数中的指针是否也发生相...

1、你没有说清函数中的指针和主函数的指针什么关系,很难如果每个都是独立的指针其值肯定不会影响到其他的指针。

2、C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。

3、调用结束后,所有实际参数的值均不会发生变化。

4、而这里是指针传递:传递的是指向变量的指针,函数中直接对指针指向的内容操作,实际上就是直接操作主调函数中的该指针指向的变量。

5、如果不用指针,那就是值传递,在Moveblock中对x,y的操作不会影响对主函数中的x,y。这主要是传地址与值传递的区别。

C语言如何使指针指向改变

指针传递可以改变其指向地址的内容,但不能改变原指针的指向。如果需要改变指向,需要使用指向指针的指针作为参数。

如果只是要改变指针指向的值, 那么传入结构体指针即可。传入二级指针,一般是要在函数内分配内存, 也就是改变指针本身的指向。

第一个:int *p;p=是正确的。定义指针变量p,然后才将p指向变量a的地址。第二个:int *p;p=int* (&a);p是指针,指向的是地址,而不是int型值,因此是错误的。

用C语言,怎样编一个函数,改变指针

1、如果函数参数直接传递的是指针类型,那么在函数内改变指针指向,并不能影响函数外的指针实例。只有传入指针的指针,才能改变指针的指向。函数里的形参是一般变量,在函数里面改变变量的值,不会改变主函数里实参的值。

2、指针传递可以改变其指向地址的内容,但不能改变原指针的指向。如果需要改变指向,需要使用指向指针的指针作为参数。

3、通过数组或者指针把主函数main()中的数据传到函数中,程序改动如下,已经在win-tc和Dev-c++下调试通过。

4、你原代码函数那样写是实现不了数组交换的,我用你的代码小做修改。你看下吧。说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。

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

C语言能在函数里改变指针所指的对象吗?

1、如果函数参数直接传递的是指针类型,那么在函数内改变指针指向,并不能影响函数外的指针实例。只有传入指针的指针,才能改变指针的指向。函数里的形参是一般变量,在函数里面改变变量的值,不会改变主函数里实参的值。

2、也就是说pp在栈中,而其指向的字符串在静态存储区中。所以能改变pp指向,但是不能改变其指向的值。你想把C/C++学明白了,一定要让内存在你心中透明。

3、引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。C++中尽量用引用。个人觉得所有的引用都可以用指针,但指针比引用容易出错。

4、调用函数,只能改变指针指向的内存空间的内容,不能改变实参指针变量的值。我觉得题主对指针变量,还算有一点了解。指针变量,其实也就是一个变量,但它的值是一块内存的地址。

5、这个是常量指针的说法。 意思是指向常量的指针。比如 const char * p=abcd可以做p=mnop这样的赋值, 即可以改变p值。但不能做*p=s这样的赋值。即不能改变指向的数据。

C语言,修改指针的指向,让三个数从小到大输出,不修改原变量的值,怎么写...

1、如果只是要改变指针指向的值, 那么传入结构体指针即可。传入二级指针,一般是要在函数内分配内存, 也就是改变指针本身的指向。

2、但是就是你这样不错,你也最好不要这么写,你在将变量a,b,c的值赋给指针p1,p2,p3指向的值以后最好不要在利用变量a,b,c。

3、对掉各个指针的顺序。当然要用到一个中间的指针变量来做交换指针内容的中介。

4、问题:输入三个数a,b,c,把其中的最大值赋值给c,中间赋值给b,最小值赋值给a。输出a,b,c。

5、for(i=0;i2;i++)for(j=0;j3;j++)这两个for循环错误,j至少要保证大于等于i,否则你前面交换的值后面又被换回去了。


分享名称:c语言函数改变指针 函数修改指针变量
分享地址:http://myzitong.com/article/dioospj.html