c语言函数改变指针地址,c语言在函数中修改指针

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

是的,不能,你的理解是对的。

专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业仁寿免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

指针传递可以改变其指向地址的内容,但不能改变原指针的指向。

如果需要改变指向,需要使用指向指针的指针作为参数。

简单C语言指针的地址转换

#include stdio.h

void swap1(int *p1,int *p2){

int *p;

*p=*p1;

*p1=*p2;

*p2=*p;

}

void main(){

int a,b;

int *p1,*p2;

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

p1=a;

p2=b;

printf("p1=%d,p2=%d\n",p1,p2);  

swap1(p1,p2);

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

printf("p1=%d,p2=%d\n",p1,p2);

}

试试这个是不是你想要的

在C语言中的 交换指针地址问题

值传递在函数调用过程中,函数内部将参数拷贝一份,而并不改变元参数的值。而指针传递,才在函数内部改变传入参数的值。如果你要传入的参数是指针,可以改变的是指针指向的具体内容的值,而你如果要在函数内部改变指针的值,你需要传入的是指针的地址,也就是指针的指针。将你的Change函数的参数改为(int **p, int **q), 然后再调用的时候改为change(p, q)即可。

希望对你又帮助。

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

可以定义这样的一个函数,不过参数类型不是一维指针,而是二维指针:

//---------------------------------------------------------------------------

#include stdio.h

int *move(int **p) //修改整形指针p的指向,使它指向相邻的下一个int存储地址,并返回这个新的地址

{

*p+=1;

return *p;

}

int main(void)

{

int a[]={1,2,3,4,5};

int *p=a; //定义一个整形指针,并指向a[0]

printf("%d\n",*p); //输出现在指向的地址保存的值

printf("%d",*move(p)); //移动指针指向,并输出移动后指向的地址保存的值

return 0;

}

//---------------------------------------------------------------------------


名称栏目:c语言函数改变指针地址,c语言在函数中修改指针
本文地址:http://pwwzsj.com/article/hdjhee.html