*pi=&i;什么意思 求详细解释pi=&i;我知道啥意思,*pi=&i这样写真的对吗?
2 回答
已采纳
MadMarical
TA贡献79条经验 获得超122个赞
你好。*p = &i 是错误的写法。
此处的&符号是取地址符,而*p为p这块内存地址里的值。所以在编译器中,*pi = &i是错误的。
示例程序如下:
#include <iostream>
using namespace std;
int main()
{
int data = 100;
int *p;
p = &data;
cout<<"p is:"<<p<<endl;
cout<<"*p is:"<<*p<<endl;
cout<<"data is:"<<data<<endl;
cout<<"&data is:"<<&data<<endl;
return 0;
}结果为:
p is:0x7fff5fbff778
*p is:100
data is:100
&data is:0x7fff5fbff778
由上述结果可以看出,&为取地址符,指针*p中的p保存的是内存地址。使用解引用符号*能得到p内存地址中保存的值。
血多多
TA贡献1条经验 获得超0个赞
没问题,看情况。
①如果pi是一维指针,那么初始化时定义:xx i; xx *pi=&i;(注意顺序,xx 为数据类型) 这是完全OK的。
②如果不是初始化时定义,那就不好说了,比如i为整形,pi为二维指针,这就OK,完全没问题。
pi与i均是同类型的多维指针,且pi比i多2维,那也是OK的。
其他情况基本就是错误的了(为什么说基本,因为整型与字符型有时是可以通用的)。
- 2 回答
- 0 关注
- 1421 浏览
添加回答
举报
0/150
提交
取消
