mdsk.net
当前位置:首页 >> C++如何将一个指针的值赋值给另一个指针,并且两个... >>

C++如何将一个指针的值赋值给另一个指针,并且两个...

首先指针全名叫<指针变量> 所以他本身是变量,既然是变量就要有值,而他的值就是指针指向的地址(在32位系统下是一个无符号的32位整数),所以可以这么说任何两个指针都不共用一个地址,但是可以指向同一个地址!像这样 int nNum = 10; int* p1 = &nNum; int* p2 = &nNum; p1和p2指向的地址相同,但是p1和p2的地址却是不同的 如果我理解的没错的话你想说的是两个指针指向同一个地址,但是这是不可能的!既然是指针值赋值给另一个指针,那么一定是指向同一地址的,算了,看到*c=*d;的写法我哭了!

#include<string.h> void cpy(char *ch1,char *ch2) { strcpy(ch1,ch2); }

*后面跟指针变量,意思是取该指针所指内存单元的数值;*P1 = *P2;意思应该是将P2所指内存单元的数赋给P1所指的内存单元;结果是P1和P2所指向的内存单元数据相等;

那个太简单,让指针指向数组a的首地址,然后用循环(注意每次循环让指针自加1),在循环里面直接用星号运算符取值,并赋值给数组b不就行了

#include<iostream>#include<string> using namespace std; int main() { char s[]="asdfghjk",b[20]; strcpy(b,a); //直接使用字符串拷贝就可以了 cout<<b; return 0; } 如果是char *b = a的话只是把a和b所指向的内存一样,如果修改了a的值则b的值也会同时进行修改.如果是 for(int i=0;i<20;i++) *(b+i)=*(s+i);或strcpy(b,a)则修改a的值不影响b;

不知道我的理解正不正确 int i , j; int *p,*q; i =2 ; p=&i; q=&j;*j = *i; p 指向地址i q指向地址j 将p指向的值 付给 j

直接赋值不就可以了a2 = a1;这样*a2就完全等价于*a1

拷贝就是完全复制一份,包括原指针的结构赋值只是单单的传递内容比如A、B两个酒店A酒店把客人传递给B酒店就是赋值按照A酒店的格局再盖个B酒店就是拷贝

可以的,指针给另一个指针复制后将指针指向的地址传递给被赋值的指针,相当于复制.这个指针本身的值不变,所以可以赋值.简单的说赋值后原来的指针没有变化.

用memcpy函数就行了,假如有两个int型的指针int* A和int* B,它们各存放N个int型的数据,现在要把指针B的内容复制到指针A中,这样写就可以了:memcpy( A, B, N*sizeof(int) ); 其他类型的数据写法是类似的.线性表可以用一维数组来表示,或者进一步用堆栈和队列,这就要看你实现什么样的功能了.再看看别人怎么说的.

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com