p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 22:46:06

p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*
p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变
p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?
#include
void swap(int *p1,int *p2)
{
int *t;
t=*p1;
p1=p2;
*p2=t;
}
void main()
{ int a=1,b=3,*p=&a,*q=&b;
swap(&p,&q);
printf("%d,%d,%d,%d\n",a,b,*p,*q);
}

p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*
执行 p1=p2 后,可以认为 p1 就是 p2,因为 p1 已经放弃了原有的指向,指向了新的地址 p2,此时,无论改变 *p1 还是 *p2 ,都是改变 p2 指向的内存;原 p1 指向的内存,在函数中就无法访问了.
void swap(int *p1,int *p2)
{
int *t;
t=*p1;
p1=p2; //错误,应该改成 *p1 = *p2;
*p2=t;
}

c语言:两个指向字符串的指针,*p1,*p2,请问while(*p1++=*p2++)是什么意思? p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的 .A.p2=*&p1; B.p2=**p1; C.p2=&p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的 .A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=* p1=p2; \p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=* C++p1->next=p2;和p2=p1->next;是不是都代表p2指向p1的下一个地址? 关于指针的问题 p,p1,p2都是指针 p=p1; p1=p2;p2=p; 交换了指针指向空间的内容?p1 指向的内容是A p2指向的内容是B 经过之后就是两个指针的内容 相互交换 ,但是所指向的地址不变? int a=10,b=20,*p1,*p2; p1=&a; p2=&b; p1=p2; printf(%d,%d,*p1,*p2); 答案是20,20怎么算?我算的是10,10,不是应该是指针变量p2也指向指针变量p1所指向的变量么 指针的逻辑运算例题 inta[5]={1,3,5,7,9},*p1=a,*p2=0;那么 p1,p2,为真,p2,p1&&p2 为假.请问此处p1,p2分别代表什么啊,还有为什么*p1=a是什么意思啊,不是p1=a是p1指向a[0]吗?他们有什么区别啊? 下面一段代码:int a=1,b=2,t; int *p1,*p2; p1=&a;p2=&b; t=*p1;*p1=*p2;*p2=t;我基本上能明白这是交换*p1和*p2的值,但书上讲解:交换*p1和*p2的值,就是交换a和b的值,即改变指针p1和p2所指向变量的值,而指针p1 C语言,设p1和p2是指向同一个int型一维数组的指针变量,那么k=*p1*(*p2)是什么意思? 指针*p1>*p2c语言中*p1>*p2 的意义是什么,是不是p1指向的值大于p2指向的值,解释其原因. 设p1、p2是指向int型一维数组的指针变量,k为int型变量,一下错误的语句是?A.k=*p1+p2 B.p2=k C.p1=p2 D.k=p2-p1 (需要具体过程,B (不了解为什么D是对的) 其中A选项我漏打了,应该是 k=*p1+*p2 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是________.a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);原因啊原因~呜呜呜 看下面:void Swap(int *p1,int *p2) { int *p; p = p1; p1 = p2; p2 = p; } 指针的用法错在哪? 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是 A k=*p1+*p2 B p2= int a ,*p ,(*p1)( ) ,*f( ),f1( ) ; float b[10],c[10][10],*p2;p1=f1;指针p1是否指向了函数f1;p1=f;指针p1是否指向了指针f,指针f是否还可以指向其他的东西 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正常执行的语句是?a.k=*p1+*p2b.k=*p1*(*p2)c.p2=kd.p1=p2 直接定义 int *p1=&k,*p2=&m;其它地方没定义k,这种情况下是否就是说指针p1,p2分别指向字符k, 两个指针P1,P2 为什么scanf(%s ,s)指的是P2而不是P1啊啊 .