
正文
c语言中如何互换指针,c语言交换指针指向的两种办法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言怎么样把指针的值赋值给另一个指针
} C语言 怎么把指针的值 赋给另一个数组 循环赋值, 或者直接strcpy。因为这里是字符串。
指针变量赋值给指针变量 是可以的。我想补充楼上的 就是这两个指针变量同时指向一个地方 内存 指向指针的指针的指针是二级指针。它指向指针。
用memcpy函数就行了,假如有两个int型的指针int* A和int* B,它们各存放N个int型的数据,现在要把指针B的内容复制到指针A中,这样写就可以了:memcpy( A, B, N*sizeof(int) ); 其他类型的数据写法是类似的。
相关问答
Q1: C语言中,怎样使结构体字符串指针的数据替换?
1、首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。
2、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
3、//如果匹配,将串T替换成V后,再将原串S中start位置开始的串赋予V StrAssign(temp, V); //用temp储存原来的V。
4、void swap(struct cj *a , struct cj *b){ struct cj temp ;temp = *a ;a = *b ;b = temp ;return ;} 结构体就是个数据类型,只不过是用户自定义而已,直接赋值,就可以了。
Q2: C语言中,怎么交换指针数组里的值?
首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。
C语言 怎么把指针的值 赋给另一个数组 循环赋值, 或者直接strcpy。 因为这里是字符串。
说明:^=只是利用异或来实现2个地址的数值交换,和你定义一个变量做交换是一个效果。
这个没有办法。因为数组的数组名虽然本质上是一个指针,但它是一个指针常量,也就是说a[0]是指针没错,但a[0]=a[1]这样是错误的。因为无法对a[0]重新赋值。所以你说的这种没有办法实现,这是C/C++的规则限定的。
Q3: c语言函数实现两指针互换,这样为什么不可以?
1、在jiaohuan函数中,你所做的交换只是对指针进行赋值,并没有交换指针指向的数据,所以也完成不了交换任务。jiaohuan函数的返回值为int型指针,但该函数中并没有返回一个指针变量。
2、C里只有值参数,值参数在进入函数时,被复制进函数的局部。
3、可以用指针,但是C语言在函数调用实参和行参时只能进行单独的“值交换”,所以即使用指针也要改为他的值去进行交换,这样才可以传进实参,进行交换,否则只能在调用函数中有效。
Q4: C语言中指针变量值互换问题
在 huan(int *p1,int *p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。
可见,交换的只是swap函数中的a,b值,对主函数中的a,b值没有影响。 修改的方法,将swap的交换变成值的交换。
代码存在以下问题 你是要做变量a和变量b的数据交换,而最后打印的是全局变量*x和*y,全局指针变量x和y是未经过初始化的指针,指向不了有效内存,所以在你printf时必然崩溃。全局指针变量x和y没有必要定义。
p1里面的地址也是能放在p里面存储的(char ,short类型就不行了)。但是对于编译器来说,存放在p里面,他就认为是一个整数,所以就不能做一些指针的操作了,比如*p。但是如果只是向你这种只是简单交换一下值是没问题的。
Q5: C语言:将两个字符指针的内容交换
strcpy(str1,temp); strcpy(str2,str1); strcpy(temp,str2);strcpy 函数功能是字符串复制,将第一个参数指定的字符串复制到第二个参数指定的位置 两个参数都是字符串首地址。
首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。
长度不同,两者存放单元的个数应当都大于 最长的字符串,否则交换以后 存不下,会出错。
c语言中如何互换指针的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言交换指针指向的两种办法、c语言中如何互换指针的信息别忘了在本站进行查找喔。







