![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
关于C++指针小问题 10
#include<iostream>usingnamespacestd;voidmain(){intm=1,n=2;int*p1=&m,*p2=&n;*p1+=3;p2=...
#include <iostream>
using namespace std;
void main()
{
int m=1,n=2;
int *p1=&m,*p2=&n;
*p1+=3;
p2=p1;
*p2*=4;
cout<<"m:"<<m<<"n:"<<n<<endl;
}
m和n的值分别是多少?为什么? 展开
using namespace std;
void main()
{
int m=1,n=2;
int *p1=&m,*p2=&n;
*p1+=3;
p2=p1;
*p2*=4;
cout<<"m:"<<m<<"n:"<<n<<endl;
}
m和n的值分别是多少?为什么? 展开
展开全部
#include <iostream>
using namespace std;
void main()
{
int m=1,n=2;
int *p1=&m,*p2=&n;
*p1+=3;//此时M=4
p2=p1;//N的地址被M取代了,把M的地址赋给P2,此时P1,P2都存放M的地址。
*p2*=4;//所以M=16.
cout<<"m:"<<m<<"n:"<<n<<endl;//而N的值始终没有改变所以N的值为2.
}
using namespace std;
void main()
{
int m=1,n=2;
int *p1=&m,*p2=&n;
*p1+=3;//此时M=4
p2=p1;//N的地址被M取代了,把M的地址赋给P2,此时P1,P2都存放M的地址。
*p2*=4;//所以M=16.
cout<<"m:"<<m<<"n:"<<n<<endl;//而N的值始终没有改变所以N的值为2.
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
在C++编程中,我们常利用类的封装、继承与多态性来构建高效、可维护的程序。例如,设计一个`Student`类,包含姓名、年龄和成绩作为成员变量,并定义成员函数来设置和获取这些值。通过构造函数初始化对象,使用成员函数实现对学生信息的操作。C+...
点击进入详情页
本回答由MarsCode提供
展开全部
编译后出现m=16,n=2;(我用vc6.0试过啦)
{
int m=1,n=2;
int *p1=&m,*p2=&n;(初始化)
*p1+=3;(*p1=m+3=4)
p2=p1;(把p1赋给p2,同时*p2的空间指向发生改变)
*p2*=4;
cout<<"m:"<<m<<"n:"<<n<<endl;
}
其实你只要明白指针指向的实体,可以通过指针的间访操作来读写空间内容。
例如你现在cout<<*p1<<“ ”<<*p2<<endl; (输出的是16 16)
我也是初学者,大家多多讨论。望采纳
{
int m=1,n=2;
int *p1=&m,*p2=&n;(初始化)
*p1+=3;(*p1=m+3=4)
p2=p1;(把p1赋给p2,同时*p2的空间指向发生改变)
*p2*=4;
cout<<"m:"<<m<<"n:"<<n<<endl;
}
其实你只要明白指针指向的实体,可以通过指针的间访操作来读写空间内容。
例如你现在cout<<*p1<<“ ”<<*p2<<endl; (输出的是16 16)
我也是初学者,大家多多讨论。望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int m=1,n=2;
int *p1=&m,*p2=&n;//先让p1指向m,p2指向n
*p1+=3;//因为p1指向m所以此句等于m += 3;也等于m = m+3;执行后m = 4;
p2=p1;//让p2和p1指向同一个地方,即都指向m
*p2*=4;//和上面的原理一样,相当于m = m*4这个时候m = 15;
所以打印的是24和2。
int *p1=&m,*p2=&n;//先让p1指向m,p2指向n
*p1+=3;//因为p1指向m所以此句等于m += 3;也等于m = m+3;执行后m = 4;
p2=p1;//让p2和p1指向同一个地方,即都指向m
*p2*=4;//和上面的原理一样,相当于m = m*4这个时候m = 15;
所以打印的是24和2。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m:16 n:2
int *p1=&m,*p2=&n; //把m的地址赋给指针p1,n的地址赋给指针p2
*p1+=3; //p1指向的数加3,这时m+3,m为4
p2=p1; //令p2也指向p1所指向的数,即m
*p2*=4; //p2指向的数乘以4,这时m=4*4=16
n的值从来都没被改动
int *p1=&m,*p2=&n; //把m的地址赋给指针p1,n的地址赋给指针p2
*p1+=3; //p1指向的数加3,这时m+3,m为4
p2=p1; //令p2也指向p1所指向的数,即m
*p2*=4; //p2指向的数乘以4,这时m=4*4=16
n的值从来都没被改动
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
4和16吧。。。引用好像是直接改变被引用的值的,所以*p1+=3;类似这种的就直接改变m的值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询